maven中log4j1.2.15的依赖管理

在maven中直接注入对log4j1.2.15的依赖是有问题的,如下:

01/04/2010 1:17:15 PM EDT: Missing indirectly referenced artifact javax.jms:jms:jar:1.1:test
01/04/2010 1:17:15 PM EDT: Missing indirectly referenced artifact com.sun.jdmk:jmxtools:jar:1.2.1:test
01/04/2010 1:17:15 PM EDT: Missing indirectly referenced artifact com.sun.jmx:jmxri:jar:1.2.1:test
01/04/2010 1:17:15 PM EDT: Missing indirectly referenced artifact javax.transaction:jta:jar:1.0.1B:compile

 出现这些问题的直接原因是sun将这些jar包笼罩在license管理的淫威下,maven中央存储库没法直接获取。而log4j1.2.15的pom.xml又明确依赖于这些文件。

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4</version>
  </dependency>
  <dependency>
    <groupId>javax.jms</groupId>
    <artifactId>jms</artifactId>
    <version>1.1</version>
  </dependency>
 <dependency>
    <groupId>com.sun.jdmk</groupId>
    <artifactId>jmxtools</artifactId>
    <version>1.2.1</version>
  </dependency>
 <dependency>
    <groupId>com.sun.jmx</groupId>
    <artifactId>jmxri</artifactId>
    <version>1.2.1</version>
  </dependency>
 <dependency>
    <groupId>oro</groupId>
    <artifactId>oro</artifactId>
    <version>2.0.8</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
  </dependency>

 解决的办法可能你已经想到了,那就是手工获取,从sun的下载页上获取这些jar包,然后按下面的指令安装。当然你也可以直接拷贝到.m2的指定目录。

 

1. 下载jmxtools、jmxri.jar、jta.jar、jms.jar和jdbc2_0-stdext.jar

2. 输入如下指令安装:

cd <directory containing jmxri.jar >
mvn install:install-file -Dfile=jmxri.jar -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar
cd <directory containing jmxtools.jar >
mvn install:install-file -Dfile=jmxtools.jar -DgroupId=com.sun.jdmk -DartifactId=jmxtools -Dversion=1.2.1 -Dpackaging=jar
cd <directory containing jta-1.0.1B.jar>
mvn install:install-file -Dfile=jta-1.0.1B.jar -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar
cd <directory containing jms.jar>
mvn install:install-file -Dfile=jms.jar -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar

 如果系统提示你mvn命令找不到,那说明你还没有安装maven, 或者没有指定M2_HOME环境变量并将其%M2_HOME%\bin加入classpath.请参考http://maven.apache.org/download.html#Installation

3. 完成!

 

当然如果你不用log4j1.2.15就不会有这些麻烦,如果只是单纯地用来写log,log4j1.2.14就已经足够啦.

 

 

你可能感兴趣的:(maven,log4j,jms,JUnit,sun)