Tag: maven 2

在多模块maven项目中指定公共资源

有没有办法在Maven的父项目模块之间共享资源? 例如,我想为多模块Maven项目中的所有模块指定一个log4j.properties文件。 通常,我使用Eclipse IDE通过选择一般项目来创建父项目,然后通过指定pom的包装将其转换为Maven项目。 这将创建一个没有src等文件夹的“干净”项目结构。 我想知道在这种情况下应该把这样的共享资源放在哪里。 EDIT1 :我想将公共资源放在父项目中。

Maven exec插件 – 如何包含“系统”类路径?

我有一个项目,使用“系统”范围来指定我的项目的WEB-INF/lib目录中包含的jar文件。 此工件不在任何maven存储库中,因此我必须将其作为项目的一部分包含在内。 我这样做有以下几点: com.example MySpecialLib 1.2 system ${basedir}/src/main/webapp/WEB-INF/lib/MySpecialLib-1.2.jar 这对大多数事情都很有用。 但现在我试图在命令行上运行一些代码(在我的webapp之外,通过我添加的main()方法)和mvn exec:java无法解析MySpecialLib中的代码,因为它不包含在“运行时”中“类路径。 我怎么能: 将MySpecialLib添加到运行时类路径中 要么 告诉mvn exec:java也使用system类路径? 我已经尝试过mvn exec:java -Dexec.classpathScope=system ,但这会遗漏runtime所有内容。

加载器约束违反

我遇到了一个项目有两次相同的.jar(对于我的情况,el-api.jar v2.1)的问题,因此,当我尝试使用Tomcat 6运行我的项目时出现以下错误堆栈。 WARNING: Unexpected error forwarding to login page javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: when resolving interface method “javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;” the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/login_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature at […]

Maven放置在JAR文件中的POM文件的重要性是什么,它是否被任何东西使用?

当Maven构建一个JAR文件时,它将模块的POM文件放在里面(似乎在目录 / 中)。 当我从Ant构建一个JAR文件以通过Maven Ant任务进行部署时,这个POM文件(JAR中的文件)的存在是否重要? 它似乎不是,但我只是想确保它没有在任何地方使用,并确认它应该在JAR文件中的确切位置。

Maven 2 – 从传递依赖版本定义依赖版本

我会用我的实际情况来解释这个问题。 我使用logback 1.0.1进行日志记录,它包含SLF4J 1.6.4作为依赖项。 我还将SLF4J API桥用于遗留日志API(java.util.logging,log4j和commons-logging),它们不是显式依赖项。 这些也必须(最好)是版本1.6.4。 为了使我的pom.xml尽可能整洁无误,我想强制说这些API桥是与SLF4J相同的版本。 我知道的唯一方法是使用版本1.6.4在我的pom.xml中手动将它们定义为依赖项。 如果我更新了logback并且引发了所需的SLF4J版本,我需要记住将桥API更改为正确的版本。 我可以以某种方式将遗留API的版本挂钩到传递依赖SLF4J的版本吗? 目前的pom.xml: 1.6.4 ch.qos.logback logback-classic 1.0.1 org.slf4j log4j-over-slf4j ${org.slf4j.version} runtime

Maven:不同配置文件的不同属性文件

我正在使用不同的maven配置文件将我的应用程序部署到不同的环境。 (使用weblogic-maven-plugin,但我认为这并不重要) 在应用程序中,我使用Spring Web Services。 现在我想根据环境更改端点。 (端点在Spring的applicationContext.xml中定义) 我的想法是从属性文件中读取值。 在Mavens包阶段,将写入(或复制)此属性文件。 这是一个好主意吗? 如果是:如何使用maven创建此属性(或整个文件)。 如果不是:什么是更好的方法来解决这个问题?

无法实例化javax.servlet.ServletException

我正在尝试使用以下代码创建类javax.servlet.ServletException的实例 public class MyTroubleViewer { public static void main(String[] args) { javax.servlet.ServletException servletException = new javax.servlet.ServletException(“Hello”); System.out.println(servletException.getMessage()); } } 但我在创建时遇到exception: Exception in thread “main” java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException … Maven帮助我依赖: javax javaee-api 6.0 jar compile 我究竟做错了什么?

具有不同范围的依赖内的Maven依赖

假设我在如下项目中定义了两个Maven依赖项。 com.thoughtworks.xstream xstream 1.3.1 test mycompany.library mylibrary 1.0.1 compile 然后,在mylibrary中,我也有一个依赖定义如下。 com.thoughtworks.xstream xstream 1.3.1 compile 当我打包我的项目时,我没有看到xstream打包在其中。 我认为项目的xstream依赖范围’test’正在覆盖mylibrary的xstream依赖范围’compile’。 在这种情况下,为整个项目包含xstream的最佳方法是什么,以便子模块在项目中打包时可以访问它? 我已经阅读了Apache Maven网站关于Transitive依赖关系的解释,但我很难理解它的含义,并且在这种情况下找出最佳实践。

Maven报告中的JUnit输出

我正在使用Maven作为我的项目,并有以下问题: 我想在测试报告中看到我的JUnit测试的日志输出(log4j,System.out,等等)。 你知道如何实现这个目标吗? 谢谢 ;-)

如何用Java启动和停止Tomcat容器?

我有一个Maven项目,它启动一个tomcat容器进行预集成测试(jUnit Tests)。 我的大多数测试都要求重新启动测试中的Web应用程序。 所以我想在执行每个jUnit测试之前重启Tomcat容器。 至于现在我使用cargo-maven2-plugin来配置tomcat容器。 那么,是否可以使用java语句启动和停止容器?