def deploy_native_image_maven_plugin(svmVersion, repo, gpg, keyid): proj_dir = join(suite.dir, 'src', 'native-image-maven-plugin') pom_from_template(proj_dir, svmVersion) # Build and install native-image-maven-plugin into local repository maven_args = [] if keyid: maven_args += ['-Dgpg.keyname=' + keyid] elif not gpg: maven_args += ['-Dgpg.skip=true'] if repo == mx.maven_local_repository(): maven_args += ['install'] else: maven_args += [ '-DaltDeploymentRepository={}::default::{}'.format( repo.name, repo.get_url(svmVersion)), 'deploy' ] mx.run_maven(maven_args, cwd=proj_dir)
def maven_plugin_install(args): parser = ArgumentParser(prog='mx maven-plugin-install') parser.add_argument( "--deploy-dependencies", action='store_true', help= "This will deploy all the artifacts from all suites before building and deploying the plugin" ) parser.add_argument( '--licenses', help= 'Comma-separated list of licenses that are cleared for upload. Only used if no url is given. Otherwise licenses are looked up in suite.py' ) parser.add_argument('--gpg', action='store_true', help='Sign files with gpg before deploying') parser.add_argument( '--gpg-keyid', help='GPG keyid to use when signing files (implies --gpg)', default=None) parser.add_argument( 'repository_id', metavar='repository-id', nargs='?', action='store', help= 'Repository ID used for binary deploy. If none is given, mavens local repository is used instead.' ) parser.add_argument( 'url', metavar='repository-url', nargs='?', action='store', help= 'Repository URL used for binary deploy. If no url is given, the repository-id is looked up in suite.py' ) parsed = parser.parse_args(args) if not suite.isSourceSuite(): raise mx.abort( "maven-plugin-install requires {} to be a source suite, no a binary suite" .format(suite.name)) if parsed.url: if parsed.licenses: licenses = mx.get_license(parsed.licenses.split(',')) elif parsed.repository_id: licenses = mx.repository(parsed.repository_id).licenses else: licenses = [] repo = mx.Repository(suite, parsed.repository_id, parsed.url, parsed.url, licenses) elif parsed.repository_id: repo = mx.repository(parsed.repository_id) else: repo = mx.maven_local_repository() svm_version = suite.release_version(snapshotSuffix='SNAPSHOT') if parsed.deploy_dependencies: deploy_args = [ '--suppress-javadoc', '--all-distribution-types', '--validate=full', '--all-suites', ] if parsed.licenses: deploy_args += ["--licenses", parsed.licenses] if parsed.gpg: deploy_args += ["--gpg"] if parsed.gpg_keyid: deploy_args += ["--gpg-keyid", parsed.gpg_keyid] if parsed.repository_id: deploy_args += [parsed.repository_id] if parsed.url: deploy_args += [parsed.url] mx.maven_deploy(deploy_args) deploy_native_image_maven_plugin(svm_version, repo, parsed.gpg, parsed.gpg_keyid) success_message = [ '', 'Use the following plugin snippet to enable native-image building for your maven project:', '', '<plugin>', ' <groupId>com.oracle.substratevm</groupId>', ' <artifactId>native-image-maven-plugin</artifactId>', ' <version>' + svm_version + '</version>', ' <executions>', ' <execution>', ' <goals>', ' <goal>native-image</goal>', ' </goals>', ' <phase>package</phase>', ' </execution>', ' </executions>', '</plugin>', '', ] mx.log('\n'.join(success_message))