如何使用爆炸的jar依赖项?

时间:2014-02-05 17:50:37

标签: java spring maven tomcat

我制作了一个弹簧网络应用程序。它适用于lib文件夹中的jar,但我需要将其中一些解压缩。我知道拆包不是最好的做事方式,但我需要解压缩。

我自己创造了这些罐子。我需要能够访问模块特定的属性文件。在您提出问题之前,我已经考虑过将它们放在外部并将它们移动到war文件夹中,但由于某些功能,这两种方法在这种情况下都无法使用。我正在处理一个糟糕的旧程序。所以我的选择有限。

我正试图让我的一些依赖项爆炸。我设法爆炸了一个jar并把它放在'WEB-INF \ classes \< MODULENAME>”在我部署的战争中使用:

<plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.8</version>
          <executions>
            <execution>
              <id>unpack</id>
              <phase>process-resources</phase>
              <goals>
                <goal>unpack</goal>
              </goals>
              <configuration>
                <artifactItems>
                  <artifactItem>
                    <groupId>${project.groupId}</groupId>
                    <artifactId>module1</artifactId>
                    <version>${project.version}</version>
                    <type>jar</type>
                    <outputDirectory>${project.build.outputDirectory}/module1</outputDirectory>
                    <overWrite>false</overWrite>
                  </artifactItem>
                  <artifactItem>
                    <groupId>${project.groupId}</groupId>
                    <artifactId>module2</artifactId>
                    <version>${project.version}</version>
                    <type>jar</type>
                    <outputDirectory>${project.build.outputDirectory}/module2</outputDirectory>
                    <overWrite>false</overWrite>
                  </artifactItem>
                </artifactItems>
                <overWriteReleases>false</overWriteReleases>
              </configuration>
            </execution>
          </executions>
        </plugin>

我已将原始依赖关系设置为提供的范围,如本文所述:

Building a WAR project with unzipped JAR dependency?

然而,它似乎无法识别爆炸的文件夹。那我忘记了什么?他们必须位于其他地方吗?或者我是否需要对新文件夹进行一些引用?

提前致谢!

编辑:我已经要求版主删除此主题。因为我已经使用上述主题解决了它。而且由于尚未找到问题的答案。

1 个答案:

答案 0 :(得分:0)

不要提取jar文件的内容。没有必要这样做。出于某种原因,它们被打包成jar文件。将jar文件放在WEB-INF目录下的lib目录中。 Tomcat将自己发现它们的内容。

MyWebApp
    |
    |_ WEB-INF
         |
         |_ lib
              |
              |_ commons_1.0.jar
              |_ email_1.3.jar