Example usage for org.apache.maven.artifact.repository ArtifactRepositoryPolicy ArtifactRepositoryPolicy

List of usage examples for org.apache.maven.artifact.repository ArtifactRepositoryPolicy ArtifactRepositoryPolicy

Introduction

In this page you can find the example usage for org.apache.maven.artifact.repository ArtifactRepositoryPolicy ArtifactRepositoryPolicy.

Prototype

public ArtifactRepositoryPolicy(boolean enabled, String updatePolicy, String checksumPolicy) 

Source Link

Usage

From source file:com.github.wcy123.maven.launcher.RunnerMojo.java

License:Apache License

@Override
public void execute() throws MojoExecutionException, MojoFailureException {
    if (isSkip()) {
        getLog().info("Skipping plugin execution");
        return;/*from w w  w  . j  av a  2s.  c  om*/
    }

    if (coordinate.getArtifactId() == null && artifact == null) {
        throw new MojoFailureException("You must specify an artifact, "
                + "e.g. -Dartifact=org.apache.maven.plugins:maven-downloader-plugin:1.0");
    }
    if (artifact != null) {
        String[] tokens = StringUtils.split(artifact, ":");
        if (tokens.length < 3 || tokens.length > 5) {
            throw new MojoFailureException(
                    "Invalid artifact, you must specify groupId:artifactId:version[:packaging[:classifier]] "
                            + artifact);
        }
        coordinate.setGroupId(tokens[0]);
        coordinate.setArtifactId(tokens[1]);
        coordinate.setVersion(tokens[2]);
        if (tokens.length >= 4) {
            coordinate.setType(tokens[3]);
        }
        if (tokens.length == 5) {
            coordinate.setClassifier(tokens[4]);
        }
    }

    ArtifactRepositoryPolicy always = new ArtifactRepositoryPolicy(true,
            ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);

    List<ArtifactRepository> repoList = new ArrayList<ArtifactRepository>();

    if (pomRemoteRepositories != null) {
        repoList.addAll(pomRemoteRepositories);
    }

    if (remoteRepositories != null) {
        // Use the same format as in the deploy plugin id::layout::url
        List<String> repos = Arrays.asList(StringUtils.split(remoteRepositories, ","));
        for (String repo : repos) {
            repoList.add(parseRepository(repo, always));
        }
    }

    try {
        ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(
                session.getProjectBuildingRequest());
        buildingRequest.setProject(session.getCurrentProject());
        buildingRequest.setRemoteRepositories(repoList);

        getLog().info("Resolving " + coordinate + " with transitive dependencies");

        // FIXME
        // artifactResolver.resolveArtifact( buildingRequest, coordinate );

        final Iterable<ArtifactResult> artifactResults = dependencyResolver.resolveDependencies(buildingRequest,
                coordinate, null);

        // start from here
        if (!artifactResults.iterator().hasNext()) {
            getLog().error("cannot find the first artifcat");
            return;
        }
        List<Artifact> listOfArtifacts = new ArrayList<>();
        for (ArtifactResult artifactResult : artifactResults) {
            getLog().info("artifacts " + artifactResult.getArtifact());
            listOfArtifacts.add(artifactResolver.resolveArtifact(buildingRequest, artifactResult.getArtifact())
                    .getArtifact());

        }
        URL[] urls = new URL[listOfArtifacts.size()];
        for (int i = 0; i < urls.length; ++i) {
            urls[i] = listOfArtifacts.get(i).getFile().toURI().toURL();
        }
        final SharedUrlClassLoader classLoader = SharedUrlClassLoader.create(urls);

        final JarFile jarFile = new JarFile(urls[0].getFile());
        final Manifest manifest = jarFile.getManifest();
        String value = manifest.getMainAttributes().getValue("Main-Class");
        // final String charSequence = "cannot find Main-Class: " +
        // manifest.getMainAttributes().entrySet().stream().map(e -> e.getKey() + ":" +
        // e.getValue()).collect(Collectors.joining("\n"));
        if (value == null) {
            throw new MojoFailureException("cannot find Main-Class " + classLoader.getURLs());
        }
        value = "com.wcy123.HelloWorldApplication";
        System.out.println("value is value " + value);
        final Class<?> aClass = Class.forName(value, true, classLoader);
        final Method main = aClass.getMethod("main", String[].class);
        Thread runnerThread = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    main.invoke(null, new Object[] { new String[] { "hello", "world" } });
                } catch (IllegalAccessException | InvocationTargetException e) {
                    e.printStackTrace();
                }
            }
        });
        runnerThread.setContextClassLoader(classLoader);
        runnerThread.start();
        runnerThread.join();
    } catch (DependencyResolverException e) {
        throw new MojoExecutionException("Couldn't download artifact: " + e.getMessage(), e);
    } catch (IOException e) {
        getLog().error("cannot create class loader", e);
        throw new MojoFailureException("cannot create class loader");
    } catch (ArtifactResolverException e) {
        getLog().error("cannot resolve artifact", e);
        throw new MojoFailureException("cannot resolve artifact");
    } catch (ClassNotFoundException e) {
        getLog().error("cannot load Main-Class", e);
        throw new MojoFailureException("cannot load Main-Class");
    } catch (NoSuchMethodException e) {
        getLog().error("cannot get main method", e);
        throw new MojoFailureException("cannot get main method");
    } catch (InterruptedException e) {
        getLog().error("interrupted", e);
    }
}

From source file:com.googlecode.jndiresources.maven.MavenEmbedder.java

License:Apache License

/**
 * Create a repository.//from   ww  w.j  av a  2  s .c  o m
 * 
 * @param url The url of repository.
 * @param repositoryId The repository id.
 * 
 * @return The repository.
 * @throws ComponentLookupException If error.
 */
public ArtifactRepository createRepository(final String url, final String repositoryId)
        throws ComponentLookupException {

    final String updatePolicyFlag = ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS;

    final String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;

    final ArtifactRepositoryPolicy snapshotsPolicy = new ArtifactRepositoryPolicy(true, updatePolicyFlag,
            checksumPolicyFlag);

    final ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy(true, updatePolicyFlag,
            checksumPolicyFlag);

    return artifactRepositoryFactory_.createArtifactRepository(repositoryId, url,
            defaultArtifactRepositoryLayout_, snapshotsPolicy, releasesPolicy);
}

From source file:com.googlecode.t7mp.steps.deployment.AddRemoteRepositoryStep.java

License:Apache License

private ArtifactRepositoryPolicy createSnapshotPolicy() {
    return new ArtifactRepositoryPolicy(false, ArtifactRepositoryPolicy.UPDATE_POLICY_NEVER,
            ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);
}

From source file:com.googlecode.t7mp.steps.deployment.AddRemoteRepositoryStep.java

License:Apache License

private ArtifactRepositoryPolicy createRelasesPolicy() {
    return new ArtifactRepositoryPolicy(true, ArtifactRepositoryPolicy.UPDATE_POLICY_DAILY,
            ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);
}

From source file:com.messapix.ftatr.jfxmobile.maven.plugin.android.AndroidConf.java

License:Apache License

private void configureRepos() throws MojoExecutionException {
    try {//from   ww  w .  ja  v  a 2s  .co  m
        ArtifactRepositoryPolicy policy = new ArtifactRepositoryPolicy(true,
                ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);

        {
            File androidSupportRepositoryDir = androidSdkDir.resolve("extras/android/m2repository").toFile();

            if (!androidSupportRepositoryDir.exists() || !androidSupportRepositoryDir.isDirectory()) {
                throw new MojoExecutionException(
                        "Android Support Repository is not installed in your SDK. Please install it from Android SDK Manager");
            }

            ArtifactRepository ar = artifactRepositoryFactory.createArtifactRepository("jfxmobile-android-repo",
                    "file://" + androidSupportRepositoryDir, "default", null, policy);

            project.getRemoteArtifactRepositories().add(ar);
        }

        {
            File dir = androidSdkDir.resolve("extras/m2repository").toFile();

            if (dir.exists() && dir.isDirectory()) {
                ArtifactRepository ar = artifactRepositoryFactory.createArtifactRepository("jfxmobile-sdk-repo",
                        "file://" + dir, "default", null, policy);

                project.getRemoteArtifactRepositories().add(ar);
            }
        }

        {
            File dir = androidSdkDir.resolve("extras/google/m2repository").toFile();

            if (dir.exists() && dir.isDirectory()) {
                ArtifactRepository ar = artifactRepositoryFactory.createArtifactRepository(
                        "jfxmobile-google-repo", "file://" + dir, "default", null, policy);

                project.getRemoteArtifactRepositories().add(ar);
            }
        }
    } catch (UnknownRepositoryLayoutException ex) {
        // NOTHING
    }
}

From source file:com.opoopress.maven.plugins.plugin.downloader.DefaultArtifactDownloader.java

License:Apache License

private List<ArtifactRepository> getRemoteRepositoryList() throws MojoFailureException {
    List<ArtifactRepository> repositories = new ArrayList<ArtifactRepository>();
    if (remoteArtifactRepositories != null) {
        repositories.addAll(remoteArtifactRepositories);
    }//w w w  .  j a  v  a 2  s .c  o m

    ArtifactRepositoryPolicy always = new ArtifactRepositoryPolicy(true,
            ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);

    if (remoteRepositories != null) {
        // Use the same format as in the deploy plugin id::layout::url
        List<String> repos = Arrays.asList(StringUtils.split(remoteRepositories, ","));
        for (String repo : repos) {
            repositories.add(parseRepository(repo, always));
        }
    }

    if (enableOpooPressRepos) {
        // Use the same format as in the deploy plugin id::layout::url
        ArtifactRepositoryPolicy never = new ArtifactRepositoryPolicy(true,
                ArtifactRepositoryPolicy.UPDATE_POLICY_NEVER, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);
        repositories.add(parseRepository(OP_RELEASES_REPO, never));
        repositories.add(parseRepository(OP_SNAPSHOTS_REPO, always));
    }

    return repositories;
}

From source file:com.opoopress.maven.plugins.plugin.GetMojo.java

License:Apache License

/**
 *
 <dependency>/*from ww  w .  ja  v a2  s  . c  o m*/
 <groupId>org.springframework</groupId>
 <artifactId>spring-test</artifactId>
 <version>${spring.version}</version>
 <scope>test</scope>
        
 * @throws MojoExecutionException
 * @throws MojoFailureException
 */
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
    String groupId = "org.springframework";
    String artifactId = "spring";
    String version = "2.5.6";
    String packaging = "jar";
    String classifier = "";

    groupId = "cn.redflagsoft";
    artifactId = "rfs-base";
    version = "2.1.17-SNAPSHOT";
    packaging = "jar";

    //        Artifact toDownload = classifier == null
    //                ? artifactFactory.createBuildArtifact( groupId, artifactId, version, packaging )
    //                : artifactFactory.createArtifactWithClassifier( groupId, artifactId, version, packaging, classifier );
    //        Artifact dummyOriginatingArtifact =
    //                artifactFactory.createBuildArtifact( "org.apache.maven.plugins", "maven-downloader-plugin", "1.0", "jar" );

    Artifact toDownload = artifactFactory.createBuildArtifact(groupId, artifactId, version, packaging);
    toDownload = artifactFactory.createArtifactWithClassifier("org.opoo.press.themes",
            "opoopress-theme-default", "1.2.0-SNAPSHOT", "jar", "opoopress-theme");

    Artifact dummyOriginatingArtifact = artifactFactory.createBuildArtifact("org.apache.maven.plugins",
            "maven-downloader-plugin", "1.0", "jar");
    ArtifactRepositoryPolicy always = new ArtifactRepositoryPolicy(true,
            ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN);

    List<ArtifactRepository> repoList = new ArrayList<ArtifactRepository>();

    if (pomRemoteRepositories != null) {
        repoList.addAll(pomRemoteRepositories);
    }

    //        remoteRepositories = "rfs.snapshots::default::http://192.168.18.6/maven2/snapshots";

    if (remoteRepositories != null) {
        // Use the same format as in the deploy plugin id::layout::url
        List<String> repos = Arrays.asList(StringUtils.split(remoteRepositories, ","));
        for (String repo : repos) {
            repoList.add(parseRepository(repo, always));
        }
    }

    try {
        //            if ( transitive )
        //            {
        //                getLog().info( "Resolving " + toDownload + " with transitive dependencies" );
        //                artifactResolver.resolveTransitively( Collections.singleton(toDownload), dummyOriginatingArtifact,
        //                        repoList, localRepository, source );
        //            }
        //            else
        //            {
        //                getLog().info( "Resolving " + toDownload );
        //                artifactResolver.resolve( toDownload, repoList, localRepository );
        //            }

        getLog().info("Resolving " + toDownload);
        artifactResolver.resolve(toDownload, repoList, localRepository);
        System.out.println(toDownload);
        System.out.println(toDownload.getFile().exists());
    } catch (AbstractArtifactResolutionException e) {
        throw new MojoExecutionException("Couldn't download artifact: " + e.getMessage(), e);
    }

    //invokePostGoals("", "");

}

From source file:com.tenderowls.opensource.haxemojos.components.NativeBootstrap.java

License:Apache License

private void initializeHaxelib(File pluginHome) throws Exception {
    try {/* ww  w  .  j a va2  s. c o  m*/
        File haxelibHome = new File(pluginHome, "_haxelib");

        if (!haxelibHome.exists()) {
            // Setup haxelib
            haxelib.execute("setup", haxelibHome.getAbsolutePath());
        }
    } catch (NativeProgramException e) {
        throw new Exception("Cant setup haxelib", e);
    }

    // Add haxelib virtual repository.
    project.getRemoteArtifactRepositories()
            .add(new MavenArtifactRepository("lib.haxe.org", "http://lib.haxe.org",
                    new HaxelibRepositoryLayout(),
                    new ArtifactRepositoryPolicy(false, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS,
                            ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE),
                    new ArtifactRepositoryPolicy(true, ArtifactRepositoryPolicy.UPDATE_POLICY_NEVER,
                            ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE)));
}

From source file:hudson.maven.MavenEmbedder.java

License:Apache License

public ArtifactRepository createRepository(String url, String repositoryId) throws ComponentLookupException {
    // snapshots vs releases
    // offline = to turning the update policy off

    //TODO: we'll need to allow finer grained creation of repositories but this will do for now

    String updatePolicyFlag = ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS;

    String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;

    ArtifactRepositoryPolicy snapshotsPolicy = new ArtifactRepositoryPolicy(true, updatePolicyFlag,
            checksumPolicyFlag);/*w w w  . j  a v a2  s  .  c om*/

    ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy(true, updatePolicyFlag,
            checksumPolicyFlag);

    RepositorySystem repositorySystem = lookup(RepositorySystem.class);

    ArtifactRepositoryLayout repositoryLayout = lookup(ArtifactRepositoryLayout.class, "default");

    return repositorySystem.createArtifactRepository(repositoryId, url, repositoryLayout, snapshotsPolicy,
            releasesPolicy);

}

From source file:io.fabric8.maven.DeployToProfileMojo.java

License:Apache License

@SuppressWarnings("unchecked")
private void addNeededRemoteRepository() {
    // TODO: Remove this code when we use releases from Maven Central
    // included jboss-fs repo which is required until we use an Apache version of Karaf
    boolean found = false;
    if (remoteRepositories != null) {
        for (Object obj : remoteRepositories) {
            if (obj instanceof ArtifactRepository) {
                ArtifactRepository repo = (ArtifactRepository) obj;
                if (repo.getUrl().contains("repository.jboss.org/nexus/content/groups/fs-public")) {
                    found = true;/*  w w w .  ja  va2  s .  co m*/
                    getLog().debug("Found existing (" + repo.getId() + ") remote repository: " + repo.getUrl());
                    break;
                }
            }
        }
    }
    if (!found) {
        ArtifactRepository fsPublic = new MavenArtifactRepository();
        fsPublic.setId("jboss-public-fs");
        fsPublic.setUrl("http://repository.jboss.org/nexus/content/groups/fs-public/");
        fsPublic.setLayout(new DefaultRepositoryLayout());
        fsPublic.setReleaseUpdatePolicy(new ArtifactRepositoryPolicy(true, "never", "warn"));
        fsPublic.setSnapshotUpdatePolicy(new ArtifactRepositoryPolicy(false, "never", "ignore"));
        if (remoteRepositories == null) {
            remoteRepositories = new ArrayList();
        }
        remoteRepositories.add(fsPublic);
        getLog().info(
                "Adding needed remote repository: http://repository.jboss.org/nexus/content/groups/fs-public/");
    }
}