Eclipse Indigoの下でmaven-achetype-quickstartから簡単なプロジェクトを作成した後、pom.xml guiエディターに移動し、依存関係タブに依存関係を追加しましたlog4j
適切なダイアログで検索します。今、私のpom.xmlは次のようになります
<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 xsd/maven-.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mygroup</groupId>
<artifactId>Test_Maven_03</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Test_Maven_03</name>
<url>http://maven.Apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Eclipseは私のPOMには次のような多くの問題があると言います
欠落しているアーティファクトjavax.jms:jms:jar:1.1 pom.xml/Test_Maven_03行2 Maven依存関係の問題
それは何を意味し、自動jarダウンロードのMaven機能をどのように見るか。
EDIT 1 1.2.15ではなくlog4j 1.2.16を選択すると、別のエラーが発生します:Missing artifact log4j:log4j:bundle:1.2.16
。したがって、自動jar管理はまったくありません。
正しく覚えていれば、ライセンスの問題のためにもう含まれていません。 jms機能が必要ない場合は、log4j依存関係からjmsを除外できます。
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>com.Sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
<exclusion>
<groupId>com.Sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
</exclusions>
</dependency>
Log4jのバージョンを1.2.16に変更します。
1.2.15のメタデータは、中央リポジトリから依存関係が欠落しているため、お気付きのとおり、不良です。ただし、中央のMavenリポジトリー内のアーティファクトまたはメタデータを変更しないというポリシーがあります。これにより、ビルドが再現不能になる可能性があるためです。つまり、アーティファクトまたはそのメタデータが変更された場合、ビルドの動作が異なる可能性があります。
理由は、再現性のないビルドを引き起こすよりも、悪いメタデータを回避する方が良いということです。
もちろん、プロジェクトメンテナーがCentralにアップロードするメタデータにもっと注意を払っている方が良いでしょう。
Log4J 1.2.16(前の質問でリンクしたもの) ;を使用します。古いJMX依存関係はなく、代わりにGeronimoから取得します。
上記の回答(JMXを除く)は、JMX依存関係を必要としない限り問題ありません。ただし、標準のMavenリポジトリからJMX依存関係の.jarファイルをダウンロードすることはできません。引用するには nabble.comのJörgSchaible- :
これは正常であり、Sun/Oracleはこれらのアーティファクトの個別のダウンロードとしての配布権を決して付与しないため、そのままです。 Oracleからライセンスをダウンロードしてライセンスを受け入れ、ローカルリポジトリマネージャーに追加する必要があります。
したがって、JMXを使用する場合、それぞれのjmx Zipフォルダーを OracleのWebサイト からダウンロードする必要があります。