4

分類子を使用してMavenアーティファクトをデプロイしようとしています。ソースとJAR(GWTから使用しています)の両方が必要なので、とを取得したいと思いartifact-version-classifier.jarますartifact-version-classifier-sources.jar。ただし、コンパイルされたJARでは正常に機能しますが、ソースでは失敗します(出力ソースJARの名前が間違っています)。

これは私がこれまでに持っている構成です:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <classifier>prod</classifier>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <finalName>${project.build.finalName}-prod</finalName>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <configuration>
        <classifier>prod</classifier>
    </configuration>
</plugin>

そして、これは私が得ている出力ですmvn deploy

Uploading: http://juicebox:8080/archiva/repository/snapshots//ar/com/nubing/afip-connector/1.0-SNAPSHOT/afip-connector-1.0-SNAPSHOT-prod.jar
237K uploaded  (afip-connector-1.0-SNAPSHOT-prod.jar)

しかし、これは間違った名前を持っています:

Uploading: http://juicebox:8080/archiva/repository/snapshots//ar/com/nubing/afip-connector/1.0-SNAPSHOT/afip-connector-1.0-SNAPSHOT-sources.jar
228K uploaded  (afip-connector-1.0-SNAPSHOT-sources.jar)
4

3 に答える 3

9

残念ながら、任意の分類子を使用してソース JAR をアタッチすることは、ソース プラグインではサポートされていません。ソース アーティファクトがアタッチされると、分類子がハードコードされます (ソース プラグインのバージョン 2.1.2 以降)。

この問題を回避するには、ソース プラグインで JAR を生成するがアタッチしないようにし、それをビルド ヘルパー プラグインattach アーティファクトゴールにアタッチします。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>attach-source-jar</id>
            <phase>package</phase>
            <goals>
                <goal>attach-artifact</goal>
            </goals>
            <configuration>
                <artifacts>
                    <artifact>
                        <file>${project.build.directory}/${project.build.finalName}-prod-sources.jar</file>
                        <type>jar</type>
                        <classifier>prod-sources</classifier>
                    </artifact>
                </artifacts>
            </configuration>
        </execution>
    </executions>
</plugin>
于 2011-12-14T04:32:57.467 に答える
4

これには prunge と同じ回避策を使用しました。しかし、それはもはや必要ありません。これは報告されたバグで、2012 年 6 月にバージョン 2.2 で修正されました: Just set the property <classifier>. 2.2.1 でテスト済み。

于 2013-07-12T07:43:56.463 に答える