問題タブ [maven-jar-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - maven release:prepare は test-jar をスキップします
私はmaven版を使用しています。3 次のプラグインを使用して、テストで分離された *.jar ファイルを生成します。
私のリリースプラグイン構成は次のようになります。
分離されたjarでテストクラスを生成することは、私が使用するまでうまくいきます:
リリースを行っているときに、テスト jar が作成されません。
リリース出力:
私もDskipTestsを使用しようとしましたが、成功しませんでした
また
リリース中にテスト jar を生成するにはどうすればよいですか? なぜスキップされるのですか?
編集
この問題は、アクティブなリリースプロファイルがある場合にのみ発生することがわかりました。このプロファイルは、どの親 pom でも見つかりません。それはどこから来たのですか?maven-release-plugin 定義から?
解決済み
hudsons .m2/settings.xmlでプロファイルリリースを見つけました。
maven.test.skipを削除するだけで、すべて正常に動作するようになりました。
maven - Maven JAR プラグインに一部のリソースが含まれていないのはなぜですか?
Ant ビルドから Maven に変換中のエンタープライズ アプリケーションがあります。ほぼ完全に変換されています。これは私が修正する必要がある最後のものです。アプリケーションは、2 つの WAR を含む EAR ファイルとしてパッケージ化され、アプリケーションのすべてのコア機能を提供する JAR モジュールがあります。
私は Freemarker テンプレート ライブラリを使用して、特に、アプリケーションによって送信される自動メールのメッセージ本文を生成しています。Freemarker はその *.ftl テンプレート ファイルをクラスパスに配置する必要があります。これはコア アプリケーション機能であり、特定の WAR に固有のものではないため、JAR に配置する必要があります。
JAR を定義する Maven モジュールには、次の POM があります。
*.ftl ファイルは src/main/resources/template/ にあり、一部は template/ 内のサブディレクトリにあります。src/main/resources 内には他のファイルがあります。いくつかの .properties といくつかの .xml、いくつかはルートにあり、いくつかはディレクトリ構造の下にあります。
このモジュール (または親) でパッケージ フェーズを実行すると、ビルド プロセスの一部として作成された target/classes ディレクトリにテンプレート ディレクトリが含まれます。適切なディレクトリ構造を持つ .properties ファイル。このディレクトリを手動で JAR すると、すべてが完全に機能します。
これが奇妙で迷子になるところです。maven-jar-plugin が JAR を作成すると、XML ファイルとプロパティ ファイルが含まれますが、テンプレート ディレクトリは JAR に完全に存在せず、その内容はどこにも見つかりません。
上記のように、**/*.ftl を明示的にインクルードしてみました。違いはありません。「includes」タグ全体を除外すると、まったく同じ動作が得られます。
Maven 3.0.5 と maven-jar-plugin 2.4 を使用しています。
android - Maven-android-jarsigner が署名に失敗しました
コア アプリケーションとそのコア アプリケーションのテスト アプリケーションに署名しようとしています。
エラーが発生しました:
プロジェクト テストで目標 com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.4.1:internal-integration-test (default-internal-integration-test) を実行できませんでした: テストの実行が完了しませんでした:権限の拒否: pid=14383、uid=14383 からの計測 ComponentInfo{packagename.core.tests/android.test.InstrumentationTestRunner} の開始は許可されません
次に、このコードと、プロジェクトの pom.xml と同じディレクトリにある my-keystore.keystore というキーストアを使用して、jarsigner プラグインを pom.xml に追加しようとしました。 pom.xml コードの抜粋は次のとおりです。
今、mvn clean install を実行するとエラーが発生します。
プロジェクト projcore で目標 org.apache.maven.plugins:maven-jarsigner-plugin:1.2:sign (署名) を実行できませんでした: '/bin/sh -c cd /path/projcore && /usr/lib/jvm/ の実行に失敗しましたjava-6-sun-1.6.0.33/jre/../bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore my-key.keystore -storepass '' -keypass '' /path/core/target/projcore-1.7.8.apk my_key'
java - Maven: 任意の拡張子で JAR を出力
Java プロジェクトをmvn install
実行すると、JAR ファイルが生成されます。ここまでは順調ですね。
その生成後、結果の JAR ファイルの名前を任意の拡張子の名前に変更したいと思います。たとえば、生成された結果の JAR が「Foo.jar」と呼ばれるとします。名前を「Foo.baz」に変更したいと思います。
これを可能にする魔法のプラグインの組み合わせを確認しようとしています。これまでのところ、このSO の回答に基づいて、次のことを試しました。
だから、2つのこと。まず、上記のプラグインは実際には何もしていないようです。また、2 番目のプラグインが何を達成しようとしているのかについても明確ではありません。
また、上記のプラグインとは別にアセンブリでこれを実行しようとしましたが、うまくいきませんでした。私のアセンブリファイル(プラグインは完全にボイラープレートであるため、含まれていないことに注意してください):
ただし、このアセンブリを実行しようとすると、次のような結果になりました: アセンブリの作成に失敗しました: アセンブリ アーカイブ dist の作成中にエラーが発生しました: zip ファイルにそれ自体を含めることはできません
だから、この時点で、私は途方に暮れています。約 1 時間のグーグル検索の後、ant スクリプトがこれに適しているという印象を受けましたが、それが機能しない理由を説明することはできませんでした。
どんな助けでも大歓迎です。
java - Maven (Eclipse プラグインと mvn) が pom.xml セットアップのメイン クラスを含まない
ここ数時間、これを解決しようとしてきましたが、どこにも行きません。Maven for Eclipseプラグイン(M2Eだと思います)とmavenもインストールしましたmvn. 私は非常に単純な Hello World プロジェクトを作成し、ビルドされた jar を使用して実行しようとしています: java -jar pimidi-0.0.1-SNAPSHOT.jar
何を試しても、常に同じエラーが発生します: target/pimidi-0.0.1-SNAPSHOT.jar にメインのマニフェスト属性がありません
ここに私のpom.xmlがあります:
POM のマニフェスト ノード (クラスパス、マニフェストの場所)、さまざまなプラグイン (アセンブリ、コンパイルなど) 内で数え切れないほどのさまざまなオプションを試しましたが、役に立ちませんでした。Eclipse で有効な POM を見ると、maven-jar-plugin が上位レベルの POM から既に含まれており、プロジェクト POM への変更が省略されていることがわかります。
これを機能させる方法について誰かアイデアがありますか? この質問に詳細が欠けていたら申し訳ありません - 私は今夜のために私の精神力を使い果たしました. どんな援助でも大歓迎です!
maven - Maven エラー: 'useUniqueVersions' の org.apache.maven.archiver.ManifestConfiguration にセッター、加算器、またはフィールドが見つかりません
Maven ビルドが失敗し、次のエラー メッセージが表示されます。
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.2:jar (default-jar) on project XXX: Unable to parse configuration of mojo org.apache.maven.plugins:maven-jar-plugin:2.2:jar for parameter manifest: Cannot find setter, adder nor field in org.apache.maven.archiver.ManifestConfiguration for 'useUniqueVersions' -> [Help 1]
私のPOMの関連セクション:
に関連するものが見つかりませんuseUniqueVersions
。問題は何でしょうか?
maven - Maven: 1 つのプロジェクトから 2 つの jar を生成することはお勧めしません。なんで?
2 番目のアーティファクトを生成したい場合は、これです。別のプロジェクトで再利用したいテストコードにビルダークラスがあります。このガイド付きテストを見つけましたが、正常に動作します。同僚と話し合った後、Tim O'Brien の記事「1 つのプロジェクトから 2 つの JAR を作成する方法 (…そしてなぜすべきでないのか)」を読みました。彼は、これを行うことはmavenのコア規約に違反していると書いています。
「これは、Maven の最も重要なコア概念の 1 つであるモジュール性に違反しています。この道をたどると、複数の JAR を作成する「超」プロジェクトをますます作成し始めたくなるでしょう。」
テストジャーではそのリスクは見られません。
「これは推奨されません」または「コアの慣習を破りますが、機能します」という唯一の声明は、私を満足させません. 少なくともmavenは、同じpomからさまざまなアーティファクトを生成するという目的を正確に果たす分類子を提供します。
私の質問: test-jar の作成は規則の例外ですか、それともこのアプローチにはもっと深刻な問題がありますか?
その上。ビルダー クラスを生産的なコードの一部にすることは、私たちが議論している別のオプションです。しかし、それはここでの主なポイントではありません。
maven - 複数のjarファイルを構築するためにmaven-jar-pluginでjar:jarゴールを使用する方法
私たちの pom.xml は、3 つの個別の jar ファイルを作成する目的で、maven-jar-plugin 内に複数の実行があります。mvn を呼び出して 3 つの jar をビルドする手段は何ですか?
現在
まだ1つのjarのみを作成します。