как начать единственную цель / выполнение в maven - PullRequest
2 голосов
/ 06 февраля 2012

В настоящее время я отлаживаю подписание приложения для Android. И было бы намного проще, если бы я мог просто запустить этот единственный плагин:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jarsigner-plugin</artifactId>
  <executions>
    <execution>
      <id>signing</id>
      <goals>
        <goal>sign</goal>
      </goals>
      <phase>package</phase>

Но что бы я ни пытался, все, что я получил, это:

[ERROR] Could not find goal 'signing' in plugin org.apache.maven.plugins:maven-jarsigner-plugin:1.2 among available goals verify, sign, help -> [Help 1]
org.apache.maven.plugin.MojoNotFoundException: Could not find goal 'signing' in plugin org.apache.maven.plugins:maven-jarsigner-plugin:1.2 among available goals verify,
 sign, help

или

org.apache.maven.lifecycle.LifecyclePhaseNotFoundException: Unknown lifecycle phase "sign". You must specify a valid lifecycle phase or a goal in the format <plugin-pre
fix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources
, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-co
mpile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, p
ost-clean, pre-site, site, post-site, site-deploy.

или другая ошибка.

1 Ответ

4 голосов
/ 07 февраля 2012

Вы можете запустить только цель цели с помощью этой команды:

mvn jarsigner:sign

У меня настроен этот плагин, мой pom выглядит так:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jarsigner-plugin</artifactId>
    <version>1.2</version>
    <executions>
        <execution>
            <id>signer</id>
            <goals>
                <goal>sign</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <archive>target/${project.artifactId}-${project.version}.jar</archive>
        <keystore>src/main/signer/.keystore</keystore>
        <alias>MyCert</alias>
        <storepass>password</storepass>
        <keypass>password</keypass>
    </configuration>
</plugin>

Поскольку у меня <archive> указывает на артефакт в моей целевой директории, я должен сначала запустить mvn clean install, а с этого момента я могу просто выполнить mvn jarsigner:sign, если я хочу снова запустить плагин maven-jarsigner-plugin подписать банку. (Обычно я не запускаю только этот плагин / цель, так как я все время делаю полную «чистую установку mvn», но она работает.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...