タグ付けされた質問 「maven」

Apache Mavenは、主にJavaプロジェクトで使用されるビルド自動化およびプロジェクト管理ツールです。このタグは、特定のMavenバージョンに関連しない質問用です。Gradleに関連する質問には、代わりにgradleタグを使用してください。


30
Spring Data Mavenビルドの「ライフサイクル構成ではカバーされないプラグインの実行」を解決する方法
Spring DataとNeo4jを使用しようとしています。まず、メインサイトからリンクされているこのガイドを試してみました。特に、私はpom.xmlを「Hello、World!」に基づいています。サンプルファイル。これは、問題を引き起こしているプラ​​グインの私のpom.xmlからの抜粋です... <plugin> <!-- Required to resolve aspectj-enhanced class features --> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.0</version> <configuration> <outxml>true</outxml> <aspectLibraries> <aspectLibrary> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </aspectLibrary> <aspectLibrary> <groupId>org.springframework.data</groupId> <artifactId>spring-data-neo4j</artifactId> </aspectLibrary> </aspectLibraries> <source>1.6</source> <target>1.6</target> </configuration> <executions> <!-- ERROR HERE IN ECLIPSE SEE BELOW FOR FULL MESSAGE --> <execution> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> <dependencies> <dependency> …


12
Mavenに依存関係の最新バージョンを使用するように指示するにはどうすればよいですか?
Mavenでは、通常、依存関係は次のように設定されます。 <dependency> <groupId>wonderful-inc</groupId> <artifactId>dream-library</artifactId> <version>1.2.3</version> </dependency> 現在、頻繁にリリースされるライブラリを使用している場合、<version>タグを常に更新するのはやや面倒です。Mavenに(リポジトリーから)常に利用可能な最新バージョンを使用するように指示する方法はありますか?

12
DependencyManagementとMavenの依存関係の違い
違いは何であるdependencyManagementとはdependencies?Apache MavenのWebサイトでドキュメントを確認しました。で定義された依存関係dependencyManagementは、バージョンを指定せずに子モジュールで使用できるようです。 例えば: 親プロジェクト(Pro-par)は、以下の依存関係を定義しますdependencyManagement。 <dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8</version> </dependency> </dependencies> </dependencyManagement> 次に、Pro-parの子で、junitを使用できます。 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies> しかし、親pomでjunitを定義する必要があるのでしょうか。必要なモジュールで直接定義しないのはなぜですか?

11
Java / Mavenで「Xerces hell」を処理しますか?
私のオフィスでは、Xercesという単語を単に言及するだけで、開発者の殺意を呼び起こします。SOに関する他のXercesの質問をざっと見ると、ほとんどすべてのMavenユーザーがこの問題にいつか「触れられている」ことを示しているようです。残念ながら、問題を理解するには、Xercesの歴史について少し知識が必要です... 歴史 Xercesは、Javaエコシステムで最も広く使用されているXMLパーサーです。Javaで作成されたほとんどすべてのライブラリまたはフレームワークは、Xercesをある程度の能力で使用しています(直接ではない場合でも、推移的に)。 公式バイナリに含まれるXerces jar は、現在のところバージョン管理されていません。たとえば、Xerces 2.11.0実装jarには名前が付けられxercesImpl.jar、名前は付けられませんxercesImpl-2.11.0.jar。 XercesチームはMavenを使用しません。つまり、公式リリースをMaven Centralにアップロードしません。 Xercesは以前は単一のjar(xerces.jar)としてリリースされていましたが、1つはAPI(xml-apis.jar)を含み、もう1つはそれらのAPIの実装を含む()の2つのjarに分割されましたxercesImpl.jar。多くの古いMaven POMは、依然としてへの依存を宣言していxerces.jarます。過去のある時点で、XercesもとしてリリースされましたxmlParserAPIs.jar。これは、一部の古いPOMも依存しています。 jarをMavenリポジトリーにデプロイする人がxml-apisおよびxercesImpl jarに割り当てたバージョンは、多くの場合異なります。たとえば、どちらもXerces 2.8.0からのものであっても、xml-apisにはバージョン1.3.03が与えられ、xercesImplにはバージョン2.8.0が与えられる場合があります。これは、人々がxml-apis jarに実装する仕様のバージョンをタグ付けすることがよくあるためです。ここには非常に良いが不完全な内訳があります。 さらに複雑なことに、Xercesは、JREに含まれているJava API for XML Processing(JAXP)のリファレンス実装で使用されるXMLパーサーです。実装クラスはcom.sun.*名前空間の下に再パッケージ化されているため、一部のJREでは使用できない可能性があるため、直接アクセスするのは危険です。ただし、すべてのXerces機能がjava.*およびjavax.*APIを介して公開されるわけではありません。たとえば、Xercesシリアル化を公開するAPIはありません。 混乱する混乱に加えて、ほとんどすべてのサーブレットコンテナ(JBoss、Jetty、Glassfish、Tomcatなど)は、Xercesとともに1つ以上の/libフォルダで出荷されます。 問題 紛争解決 上記の理由のいくつか、またはおそらくすべてのために、多くの組織は、自分のPOMでXercesのカスタムビルドを発行および使用しています。小さなアプリケーションでMaven Centralのみを使用している場合、これは実際には問題ではありませんが、ArtifactoryまたはNexusが複数のリポジトリ(JBoss、Hibernateなど)をプロキシしているエンタープライズソフトウェアではすぐに問題になります。 たとえば、組織Aは次のように公開xml-apisします。 <groupId>org.apache.xerces</groupId> <artifactId>xml-apis</artifactId> <version>2.9.1</version> 一方、組織Bは次のものと同じものjarを公開する場合があります。 <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> <version>1.3.04</version> B jarはAよりも低いバージョンですがjar、Mavenはが異なるため、それらが同じアーティファクトであることを認識していません groupId。したがって、競合の解決は実行できず、両方 jarのが解決された依存関係として含まれます。 クラスローダー地獄 上記のように、JREはJAXP RIのXercesに同梱されています。すべてのXerces Maven依存関係を<exclusion>sまたは<provided>、依存するサードパーティのコードは、使用しているJDKのJAXPで提供されるバージョンで動作する場合と動作しない場合があります。さらに、Xerces jarがサーブレットコンテナに同梱されており、これに対処する必要があります。これにはいくつかの選択肢があります。サーブレットのバージョンを削除して、コンテナがJAXPバージョンで実行されることを望んでいますか?サーブレットバージョンを残し、アプリケーションフレームワークがサーブレットバージョンで実行されることを望んでいますか?上記で概説した1つまたは2つの未解決の競合が製品に侵入した場合(大規模な組織で起こりやすい)、クラスローダーの地獄にすぐに気づき、実行時にクラスローダーが選択しているXercesのバージョンと、そのバージョンかどうかを疑問に思います。 WindowsとLinuxで同じjarを選択します(おそらくそうではありません)。 ソリューション? 私たちは、全てのXerces Mavenの依存関係をマーキングしようとした<provided>かのように<exclusion>アーティファクトが非常に多くの別名(持っていることを考えると(特に大規模なチームで)が、これは強制することは困難であるxml-apis、xerces、xercesImpl、xmlParserAPIs、など)。さらに、サードパーティのlibs / frameworksは、JAXPバージョンまたはサーブレットコンテナによって提供されるバージョンでは実行できない場合があります。 Mavenでこの問題にどのように対処すればよいでしょうか?依存関係をこのように細かく制御してから、階層型クラスローディングに依存する必要がありますか?すべてのXerces依存関係をグローバルに除外し、すべてのフレームワーク/ライブラリに強制的にJAXPバージョンを使用させる方法はありますか? 更新:Joshua …

25
Mavenの更新を強制する方法は?
既に動作しているプロジェクトを別のコンピューターにインポートし、依存関係のダウンロードを開始しました。 どうやら私のインターネット接続がクラッシュし、今私は以下を取得します: >Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:comicsTest:war:0.0.1-SNAPSHOT: The following artifacts could not be resolved: org.springframework:spring-context:jar:3.0.5.RELEASE, org.hibernate:hibernate-entitymanager:jar:3.6.0.Final, org.hibernate:hibernate-core:jar:3.6.0.Final, org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final, org.aspectj:aspectjweaver:jar:1.6.8, commons-lang:commons-lang:jar:2.5, >mysql:mysql-connector-java:jar:5.1.13: Failure to transfer org.springframework:spring-context:jar:3.0.5.RELEASE from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not …
731 maven 

30
この環境ではコンパイラは提供されていません。おそらく、JDKではなくJREで実行していますか?
私はm2eclipseを使用してEclipseでプロジェクトをコンパイルしています。EclipseでJDKパスを次のように設定しました。 Windows-->preferences-->installed jres--> jdk1.7.xx path しかし、これはエラーを示しています [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [INFO] 1 error [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.424s [INFO] Finished at: …

20
Mavenが「MyRepoの更新間隔が経過するまで解決は再試行されない」と言ったとき、その間隔はどこに指定されていますか?
Mavenでは、まだ構築していないか、リポジトリに含めていないサードパーティのリポジトリからのアーティファクトにときどき遭遇しました。 Mavenクライアントから、アーティファクトが見つからないというエラーメッセージが表示されます。 org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.4.0 http://myrepo:80/artifactory/repoがローカルリポジトリにキャッシュされていなかったため、MyRepoの更新間隔が経過するか更新が強制されるまで、解決は再試行されません-> [ヘルプ1] 今、私はこれが何を意味するのかを理解し、でコマンドを再実行するだけで-U、通常、そこから問題なく動作します。 ただし、このエラーメッセージは非常に直感的ではなく、同僚の頭痛の種を避けようとしています。 このupdate interval設定を変更できる場所があるかどうかを調べています。 update intervalこのエラーメッセージで言及されているのは、クライアント側の設定ですか、サーバー側の設定ですか? クライアント側の場合、どのように構成しますか? サーバー側の場合、Nexus / Artifactoryがこれらの設定をどのように/公開しているかを誰かが知っていますか?
587 maven  artifactory 

30
IntelliJインスペクションで「シンボルを解決できません」と表示されるが、コードはコンパイルされる
プラットフォーム:IntelliJ Community Edition 10.0.3 SDK:jdk1.6.0_21 OS:Windows 7 そのため、IntelliJで完全に困惑している奇妙な状況にあります。Mavenプロジェクトをセットアップして、log4jを依存関係としてpom.xmlファイルに追加します。IDEAインスペクションは問題なく実行され、私のユニットテストはすべてコンパイルして実行されます。 次に、次のようにmvn install:install-fileを使用して、hunnysoftのjmimeライブラリをローカルのmavenリポジトリに追加しました。 mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \ -DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar Mavenはjarファイルをローカルリポジトリに正常にインストールしました。 次に、IntelliJの設定=> Maven =>リポジトリサービスに移動し、ローカルリポジトリを更新しました(IntelliJがリポジトリのコンテンツのインデックスを再作成するため)。 最後に、次の依存関係をpom.xmlファイルに追加しました(log4j依存関係のすぐ上)。 <dependency> <groupId>jmime</groupId> <artifactId>jmime</artifactId> <version>3.1.1e</version> </dependency> 次のように新しいクラスを作成します。 package com.stackoverflow.question; import org.apache.log4j.Logger; import com.hunnysoft.jmime.ByteString; import com.hunnysoft.jmime.Field; import com.hunnysoft.jmime.FieldBody; public class StackOverflowQuestion { public Field create(String name, String text) { …

23
Mac OS XへのMavenインストール
以下の手順に従って、ターミナルからmavenをインストールしようとしています。 これまでのところこれを得た export M2_HOME=/user/apple/apache-maven-3.0.3 export M2=$M2_HOME/bin export PATH=$M2:$PATH export JAVA_HOME=/usr/java/jdk1.6.0_22 これはおそらく愚かな質問です。どこにこれを見つけに行きますか?
545 macos  maven  maven-3 


29
Mavenが実行するJUnitテストを見つけられない
私はMavenプログラムを持っています、それはうまくコンパイルします。私が実行するmvn testと、テストは実行されません(TESTsヘッダーの下にThere are no tests to run.)。 この問題を非常に簡単な設定で再現しました-X。以下に含めるだけでなく、で実行したときの出力も含めます。 単体テストはeclipseから正常に実行されます(デフォルトのjunitパッケージを使用する場合と、代わりにmavenによってダウンロードされたjunit.jarを含める場合)。また、mvn test-compileはtest-classesの下でクラスを正しく作成します。私はこれをOSX 10.6.7とMaven 3.0.2およびjava 1.6.0_24で実行しています。 ディレクトリ構造は次のとおりです。 /my_program/pom.xml /my_program/src/main/java/ClassUnderTest.java /my_program/src/test/java/ClassUnderTestTests.java pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>my_group</groupId> <artifactId>my_program</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>My Program</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> …
416 java  maven  junit  junit4  maven-3 


8
IntelliJ-Javaプロジェクト/モジュールをMavenプロジェクト/モジュールに変換する
Bitbucketにプロジェクトがあります。ソースのみがコミットされます。プロジェクトを新しいマシンに取得するには、IntelliJ内から[バージョン管理]> [バージョン管理からチェックアウト]を使用しました。 次に、このソースから新しいプロジェクトを作成するかどうかをたずねられ、「はい」と応答します。ここまでは順調ですね。それは私のために素敵な小さなJavaプロジェクトを作成します。 ただし、このプロジェクトをIntelliJに導入する際の私の目標は、このプロジェクトをMavenプロジェクトに変えることでした。これを可能にするオプションはどこにもありません! IntelliJに名前とアーティファクトIDとリポジトリを含む基本的な空のpom.xmlを生成させる方法はありますか?または、そもそもプロジェクトをMavenプロジェクトとしてインポートする方法はありますか?(既存のソースからプロジェクトを作成しようとすると、Javaプロジェクトのオプションしか表示されません。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.