如何在Eclipse动态web应用程序中使用java jar库
我正在尝试为需要共享一组公用JAR(在某些情况下,还有刚刚导入工作项目的代码)的项目设置目录结构(和项目文件) 例如,假设我有一个名为“common”的通用项目。此项目包含公共代码和JAR,这些代码和JAR可能由独立java应用程序或动态web应用程序使用 我的web项目(称之为webapp1)从“common”导入源代码,因此这不是问题。我这样做的原因是,在这一点上,我真的不需要创建一个“公共”项目并将其编译成一个jar,然后从webapp1引用它,因为webapp1不会获取供应商jar,因为它们都必须在WEB-INF/lib下 那我该怎么做呢?我曾考虑将WEB-INF作为一个符号链接,链接到另一个包含JAR的目录,但这对Windows环境不起作用。但这基本上就是我想要的。以下是对此的描述:如何在Eclipse动态web应用程序中使用java jar库,java,eclipse,tomcat,dynamic,Java,Eclipse,Tomcat,Dynamic,我正在尝试为需要共享一组公用JAR(在某些情况下,还有刚刚导入工作项目的代码)的项目设置目录结构(和项目文件) 例如,假设我有一个名为“common”的通用项目。此项目包含公共代码和JAR,这些代码和JAR可能由独立java应用程序或动态web应用程序使用 我的web项目(称之为webapp1)从“common”导入源代码,因此这不是问题。我这样做的原因是,在这一点上,我真的不需要创建一个“公共”项目并将其编译成一个jar,然后从webapp1引用它,因为webapp1不会获取供应商jar,因为
common \
src \
some.source.packages
lib \
HibernateLibs \
hibernate.jar
hibernate2.jar
ApacheCommonLibs \
common-string.jar \
etc.
webapp1
src \
local.source.packages
reference to common.source.packages above
WebContent \
WEB-INF \
lib \
This is where I'd like to place references to the libs in common
(only those I need for this web app)
如果我只是使用webapp1通用引用,这种方法是可行的,但是当我尝试从IDE运行webapp1时,这些库实际上并不在正确的位置
请注意,Maven等构建系统或多或少已经过时了,因为我的公司只允许特定的LIB和这些LIB的版本(这很痛苦,但这是我必须处理的)
谢谢你对这方面的见解。我并不拘泥于项目结构,但我确实希望避免多个项目都有相同的jar,并且必须保持它们的同步(更不用说这会使检出代码的速度非常慢)。创建web项目时,不必在web\u INF文件夹中添加库 解决方案:
mvn install:install-file -Dfile=[file_path] -DgroupId=[your group id] -DartifactId=[artifact id] -Dversion=[version] -Dpackaging=jar
您还可以使用Nexus或Jfrog artifactory服务器检索jar。此服务器将仅适用于您的公司。因此,只有您的公司才能使用罐子
- 罐子
- BOOT-INF
- 类(包含java包和类)
- lib(包含依赖项jar)
- META-INF(包含MANIFEST.MF)
- org(spring运行时支持包)
- BOOT-INF
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>ZIP</layout>
</configuration>
</plugin>
那么一切都很简单。现在运行web应用程序:
java -Dloader.path=lib,external-jar.jar -jar starter.jar
现在我们有了web应用程序而没有web\u INF文件夹,并且我们有应用程序之外的所有依赖jar文件最后我们有许多项目使用与项目外部相同的库JAR 创建web项目时,无需将库添加到web\u INF文件夹中 解决方案:
mvn install:install-file -Dfile=[file_path] -DgroupId=[your group id] -DartifactId=[artifact id] -Dversion=[version] -Dpackaging=jar
您还可以使用Nexus或Jfrog artifactory服务器检索jar。此服务器将仅适用于您的公司。因此,只有您的公司才能使用罐子
- 罐子
- BOOT-INF
- 类(包含java包和类)
- lib(包含依赖项jar)
- META-INF(包含MANIFEST.MF)
- org(spring运行时支持包)
- BOOT-INF
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>ZIP</layout>
</configuration>
</plugin>
那么一切都很简单。现在运行web应用程序:
java -Dloader.path=lib,external-jar.jar -jar starter.jar
现在我们有了web应用程序而没有web\u INF文件夹,并且我们有应用程序之外的所有依赖jar文件<强>终局