問題タブ [maven-compiler-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.
java - Java プロジェクトは依存関係に Java バージョンの採用を強制しますか?
ここで質問です。別の Maven プロジェクト (「B」) を依存関係として取り込む Maven プロジェクト (「A」) があるとします。どちらも現在、コンパイルに Java 7 を使用しています。プロジェクト B が Java 8 に切り替えた場合、プロジェクト A も Java 8 を使用する必要がありますか?
もしそうなら、それを回避する方法はありますか?つまり、プロジェクト B を Java 7 にダウングレードしたり、プロジェクト A を Java 8 にアップグレードしたりせずに、プロジェクト A が使用できるコードをプロジェクト B に生成させますか? たとえば、プロジェクト B に「ソース 1.8 ターゲット 1.7」などの形式を実行させるとします。(javac はそれを好まないようで、別のコンパイラを見つけることができません。たとえば、plexus-compiler-eclipse は Java 8 をサポートしていませんが、それはまったく別の問題です。問題は、生成に使用されたソース バージョンから生成されたバイトコード)
maven - fork=trueを指定するとmaven-compiler-pluginはアノテーション処理をしない?
maven-compiler-plugin
コードで注釈処理を実行するために Maven プロジェクトで使用しています。<fork>true</fork>
構成オプションを追加するまでは機能していました。
pom.xmlファイルには以下が含まれます。
my-processor-1.0.jarファイルにはMETA -INF/services/javax.annotation.processing.Processorjavac
ファイルが含まれているため、実行時にコンパイラによって検出されます。
この構成でmvn clean compileを実行すると、予想どおり、注釈プロセッサが実行され、生成されたコードがtarget\generated-sources\annotationsディレクトリに配置されることがわかります。
しかし<fork>true</fork>
、プラグイン構成にオプションを追加すると、注釈プロセッサが実行されず、target\generated-sources\annotationsディレクトリにコードが存在しないことがわかります。
maven-compiler-plugin
バージョン 2.5.1、3.0、および 3.1 でこれを試しました (3.x バージョン<forceJavaCompilerUser>true</forceJavaCompilerUser>
では、注釈プロセッサ jar が検出されるように構成にオプションを追加する必要がありました)。
また、アノテーション プロセッサを明示的に指定してみました。
繰り返しになりますが、バージョン 2.5.1、3.0、および 3.1 では、構成オプションでフォークが指定されていない場合、アノテーション プロセッサが呼び出されます。オプションが指定されている場合<fork>true</fork>
、注釈プロセッサは実行されません。
また、アノテーション プロセッサの依存関係が確実に読み込まれるようにx.y.z:my_processor
、依存関係の外に依存関係を追加しました。maven-compiler-plugin
maven-compiler-plugin
が で設定されている場合でも注釈処理は機能し<fork>true</fork>
ますか? それとも、プラグインの設定が間違っていますか?
コンパイルを別々の実行に分割したくないことに注意してください (たとえば、 を使用して注釈処理なしでコンパイルする実行と、 を使用<fork>true</fork>
して注釈処理のみを行う別の実行<fork>false</fork>
。これを回避する方法がない限り、何千ものソース ファイルを処理する必要があります)。
JDK 1.7.0_45 を使用しています。
編集#1
実際の解決策は、プロセッサの依存関係をプラグインの依存関係から通常の依存関係に移動することでした。
これをテストしたと思っていましたが、生成されたコードの存在を探すのではなく、コンソール出力 (プロセスがフォークされたときに表示されない) を探していたのかもしれません。
maven - IntelliJ 14 Maven コンパイルの問題
今日、IntelliJ 14.0.1 に更新しました。IntelliJ 13.1 で作業していた Maven プロジェクトをインポートしました。プロジェクトは正常にインポートされますが、IntelliJ からプロジェクトを実行しようとすると、依存関係が見つかりませMake
んCompile
。
IntelliJ の内部からでも、Maven のインストールを行うと、それは成功したと言わざるを得ません。しかしMake
、プロジェクト エラーが発生すると、ライブラリ (依存関係) が見つからないことが示されます。
どういうわけか、IntelliJ からのコンパイル手順が Maven の依存関係を取得しないか、pom.xml
考慮していないように思えます。
誰かが似たようなことに直面したことがありますか?それを修正する方法についてのアイデアはありますか?私はすでにプロジェクトを再インポートしようとしましたが、助けにはなりませんでした。org.junit.Test
さらに、依存関係として JUnit のみを使用してダミー プロジェクトを作成しましたが、テストを実行しようとすると IntelliJ が見つからないと不平を言っています。
アップデート:
関連する可能性のある IntelliJ ログに次のように表示されます。コンパイルが中止されたようです。
2014-11-14 17:17:11,460 [247914] INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stdout]: 17:17:11,445 |-INFO in ch.qos.logback.classic.LoggerContext[default] - [jar:file:/C:/Program%20Files%20(x86)/JetBrains/IntelliJ%20IDEA%20Community%20Edition%2014.0.1/plugins/gradle/lib/gradle.jar! にリソース [logback.groovy] が見つかりました! /logback.groovy]
java - maven-compiler-plugin で -XX:PermSize=64m を設定するには?
maven-compiler-plugin (v3.2) で permsize または maxpermsize の設定に失敗しました。
私はこのように試しました:
エラーになるもの
私の他の試みは、例http://maven.apache.org/plugins/maven-compiler-plugin/examples/pass-compiler-arguments.htmlのように追加することでした
まったく同じエラーが発生します:
では、なぜこのフラグは無効なのですか? MVN_OPTS 変数に追加するときに適切に考慮される場合は?
java - Maven: 入力パラメーターを使用してプロジェクトをコンパイルする方法
プロジェクトを次のようにコンパイルします。
しかし、私のプロジェクトには別のサーバーのさまざまなパラメーターがあり、コンパイル後に修正する必要があります (たとえば、運用location=prod
サーバーとlocation=dev
ローカル サーバーで)。 web.xml に次のようなコードがあります。
次のように変数の場所を使用したい:
クラスパス:/${場所}/properties-config.xml
spring-data-neo4j - maven-compiler-plugin と xlint を使用した spring-data-neo4j でコンパイラの警告が発生する
私は、spring-data-neo4j Maven 依存関係を、maven-compiler-plugin と Xlint および -Werror フラグを使用するプロジェクトに統合する任務を負っています。修正が必要なコンパイルの問題がいくつかあります。
spring-data-neo4j とこのビルド構成に依存する Maven プロジェクトをビルドすると、ビルドが失敗する原因となるコンパイル警告が発行されます。このプロジェクトのビルド構成を自由に変更することはできないため、コンパイラの警告を排除する方法を見つけようとしています。
http://github.com/spring-guides/gs-accessing-data-neo4jプロジェクトをhttps://github.com/spencerhrob/gs-accessing-data-neo4jにフォークして問題を再現しました。
with-xlintブランチでは、pom.xml ファイルの「build」セクションが次のように変更されました。
このブランチの完全なフォルダーでmvn clean packageを実行すると、次のコンパイル エラーが返されます。
-Xlint フラグを削除すると ( with-xlintブランチのように)、コンパイラの警告が発行されなくなります。また、(with -werrorブランチのように) -Werror フラグを削除すると、警告が発行されますが、Maven ビルドは引き続き正常に完了します。
また、親の gs-accessing-data-neo4j プロジェクトで使用されているように、spring-boot-maven-plugin ビルド プラグインで Xlint を使用してみました。私のリポジトリのwithout-maven-compiler-pluginブランチには、次の構成があります。
このブランチでmvn clean packageを実行すると、コンパイラの引数で Xlint が指定されていても、コンパイラの警告は返されません (ただし、Xlint が実行されているかどうかは完全にはわかりません)。
maven-compiler-plugin を削除するか、-Xlint または -Werror フラグを削除することでこの問題を解決できることはわかっていますが、作業中のプロジェクトのビルド構成を変更できないため、それはオプションではありません。 on (参照されている GitHub リポジトリではありません)。
-Xlint および -Werror フラグを指定して maven-compiler-plugin を使用して spring-data-neo4j 依存プロジェクトをビルドすると、「プロセッサがこれらの注釈のいずれかを要求していません」というコンパイラ警告が発生する既知の理由はありますか? また、maven-compiler-plugin または -Xlint および -Werror フラグを削除せずにコンパイラの警告をなくす方法はありますか?
java - 目標 org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile の実行に失敗しました
Javaの最新バージョンを使用しています。
解決済み: 問題は maven にありました。私は古いバージョン(maven3.0.2)を使用していましたが、他のことは正しかったです。
maven - Java 8 での Maven アーティファクトのインストールとコンパイル
pom.xml
次の<build>
宣言を持つプロジェクトがあります。
このプロジェクトを実行するmvn install
と、プロジェクトがコンパイルされ、単体テストが実行され、ローカル リポジトリに公開されます。ここでMavenについてもう少し学ぼうとしていますが、次のドキュメント/説明を見つけるのに苦労しています:
mvn install
POM が で宣言されていない場合、どうすればを実行できbuild/plugins
ますか?maven-compiler-plugin
含まれmaven-install-plugin
ている場合、どうすればそれを理解できましたか?- 最も重要な
build/plugins/plugin/configuration/source
ことは、との値.../target
が両方とも に設定されていること1.8
です。私のマシンに Java 8 が搭載されていて、mvn install
このプロジェクトをエラーなしで実行した場合、プロジェクトが Java 8 でビルドされることが保証されますか? Compiler Pluginのドキュメントを見ていますが、それらの/構成がどこにもリストされていません。source
target
eclipse - Maven コンパイラ プラグイン エラー
maven-compiler-plugin を指定するために、pom.xml に次のコードがあります。
プロジェクトは正常にコンパイルおよび実行されますが、プロジェクト ルートにエラー サインがあります (Eclipse を使用しています)。
この抜粋をコメントアウトすると、エラーは消えますが、もちろん、プロジェクトはコンパイルされません。Maven の Web サイトを確認しましたが、仕様は同じです。
これを修正するのを手伝ってくれませんか?
解決策(AleksandrM に感謝)
pom.xml の変更は、maven 更新プロジェクトが明示的に呼び出されない限り、Eclipse プロジェクト設定に適用できません。
プロジェクト ルートで ALT + F5 をクリックし、Maven プロジェクトを更新します。
maven - maven - コンパイルするソースがない、実行するテストがない、実行データファイルを読み取れない
jacoco コード カバレッジ レポートを使用して、プロジェクトのコード品質をソナーで表示したいと考えています。単体テスト用に jacoco と実行可能ファイル jacoco-ut.exec を使用して、コード カバレッジ レポートを生成できます。ジェンキンスを使用すると、次のメッセージが表示されます。
プロジェクトで古いターゲット フォルダーを使用しているため、ビルドは成功しています。