5

Mavenコマンドラインを使用して、1つのEXEファイルを展開しようとしています.ZipソースファイルはSonatype Nexusに圧縮されています。ファイルは SNAPSHOT として展開する必要があります。

だから、私は2つのファイルを持っています:

-testXYZ.exe and source file
-testXYZ.zip

ここで説明されているmaven 2.2.1とコマンドを使用:

mvn deploy:deploy-file -Durl=file:///home/me/m2-repo \
                       -DrepositoryId=some.repo.id \
                       -Dfile=./path/to/artifact-name-1.0.jar \
                       -DpomFile=./path/to/pom.xml \
                       -Dsources=./path/to/artifact-name-1.0-sources.jar \
                       -Djavadoc=./path/to/artifact-name-1.0-javadoc.jar

maven 2.2.1 は deploy-plugin v2.5 を使用しており、このコマンドは v2.7 までサポートされていないため、EXE をデプロイできますが、ソースをデプロイできません。新しいバージョンのmavenを使用することは許可されていないため、別のアプローチを試みます。

これら 2 つの後続のコマンドを使用して、これら 2 つのアーティファクトをデプロイできますが、ソースを nexus からダウンロードできません。

call mvn deploy:deploy-file -DgroupId=com.xyz -DartifactId=testXYZ -Dversion=1.1.116-SNAPSHOT -Dpackaging=zip -Dfile=testXYZ.zip -Dclassifier=sources -Durl=http://build:8081/nexus/content/repositories/snapshots -DrepositoryId=nexus
call mvn deploy:deploy-file -DgroupId=com.xyz -DartifactId=testXYZ -Dversion=1.1.116-SNAPSHOT -Dpackaging=exe -Dfile=testXYZ.exe -Durl=http://build:8081/nexus/content/repositories/snapshots -DrepositoryId=nexus

デプロイ後、testXYZ を検索し、アーティファクト ソースのダウンロード リンクをクリックします。ネクサス 言います:

「パス「com.xyz:testXYZ:1.1.116-SNAPSHOT:c=sources:e=jar」にアイテムが見つかりません!」

問題は、maven がこれらのアーティファクトをアップロードする方法です。

Line form log file while source is uploading:
Uploaded: http://build:8081/nexus/content/repositories/snapshots/com/xyz/testXYZ/1.1.116-SNAPSHOT/testXYZ-1.1.116-20120106.111705-1-sources.zip
Line form log file while Main artifact is uploading:
Uploaded: http://build:8081/nexus/content/repositories/snapshots/com/xyz/testXYZ/1.1.116-SNAPSHOT/testXYZ-1.1.116-20120106.111709-2.exe

111705-1 および 111705-2 に注意してください。Nexus が正しいリンクを生成できるようにするには、最後の番号を同じにする必要があります。

このアプローチについては、次で説明します。

Maven の deploy:deploy-file プラグインを使用してアーティファクト、そのソース、および javadoc をデプロイする

そしてここ:

http://maven.apache.org/plugins/maven-install-plugin/examples/installing-secondary-artifacts.html

固定バージョン(1.1.116など)では機能しますが、SNAPSHOTでは機能しません。

固定バージョンが使用されている場合、Exe および Zip ファイルを Nexus に展開できます (jar ファイルと同様)。

それで、質問は次のとおり です。アーティファクトとソースのスナップショットをコマンドラインからSonatype Nexusにデプロイし、ソースとアーティファクトのリンクをクリックしてこれらのファイルをダウンロードできることを確認する方法はありますか?

注: タイムスタンプのサフィックスを無効にすると、これは機能しますが、これはしたくありません。

-DuniqueVersion=false

ありがとう、

マルジャン

4

1 に答える 1

1

この問題の部分的な解決策を見つけました。次のように特定のバージョンの maven-deploy-plugin を呼び出すことができます。

mvn org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file...

このようにして、アーティファクトとソースのスナップショットを Nexus にデプロイしてダウンロードの問題を回避できますが、次のように動作します。

-DuniqueVersion=false

まだあります。

于 2012-01-10T11:33:28.653 に答える