【问题标题】:Set shared.loader with MAVEN2_CLASSPATH_CONTAINER使用 MAVEN2_CLASSPATH_CONTAINER 设置 shared.loader
【发布时间】:2011-06-28 12:12:29
【问题描述】:
有没有办法使用 MAVEN2_CLASSPATH_CONTAINER 值设置 shared.loader catalina.properties 变量?
我想将 maven eclipse 项目的库依赖项添加到该变量。我可以在我的 tomcat 启动配置中添加一个 VM 参数,该参数可以包含在 catalina.properties 中可用的值(类似于 -Dcatalina.home=..),但我不知道如何从 org 获取可用变量.maven.ide.eclipse.MAVEN2_CLASSPATH 库容器或以任何方式导出。
【问题讨论】:
标签:
eclipse
tomcat
maven
m2eclipse
【解决方案1】:
我现在使用一个 eclipse maven 任务来为我的项目执行dependency:dependency-copy。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<outputDirectory>${project.build.directory}/mavendependencies</outputDirectory>
<excludeArtifactIds>jsp-api,servlet-api</excludeArtifactIds>
</configuration>
</plugin>
我在服务器启动配置中设置了 workspace.dir 属性,如下所示:
-Dworkspace.dir=${workspace_loc}
我在 catalina.properties 中的 shared.loader 现在看起来像这样:
shared.loader=${workspace.dir}/project/target/classes,${workspace.dir}/project/target/mavendependencies/*.jar,${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
【解决方案2】:
也可以使用 catalina.config 属性覆盖 catalina.properties 文件位置。在这种情况下,不必触及 eclipse 生成的 catalina.properties 文件,并且可以通过在项目中创建自定义文件来修改共享类加载器。
-Dcatalina.config=file://${workspace_loc}/projectA/projectA-config/src/main/eclipse-conf/catalina.properties