Tag: maven 2

Eclipse与CVS存储库同步时是否可以忽略.cvsignore文件?

我正在使用团队环境,在不同的开发人员中混合使用IDE。 有些使用Eclipse,有些是NetBeans,有些是IntelliJ等。代码项目都是围绕Maven构建的…所以没有人关心你使用哪个IDE,只要它可以和Maven一起玩。 为此,我们不应该将任何特定于IDE的文件(例如“.project”,“。classpath”)提交到CVS存储库。 我相信第二部分可能有点过分……但我们也不应该提交我们的“.cvsignore”文件,这些文件包含我们各个IDE特定文件的filter。 每次与存储库同步时,我的“.cvsignore”文件都会有点麻烦。 有没有办法可以阻止Eclipse在“团队同步”透视图中显示这些文件?

这两个设置在maven中是否相同?

我想限制maven只使用私有/非公共maven存储库,这两个设置有同样的效果吗? 1.在settings.xml中设置镜像 my-internal-site * our maven repository http://myserver/repository 2.在pom.xml中设置存储库 my-internal-site our maven repository http://myserver/repo 同样的要求是,即使内部存储库中没有某些依赖项,maven 也永远不会访问公共存储库。 谢谢

Spring Batch,JdbcExecutionContextDao java.util.Map $ Entry deserializer issue,xstream 1.4.1

我使用Spring Batch 2.1.9时遇到问题:当我使用jobExplorer.getJobExecution(jobExecutionId)时 ,我发现DAO必须反序列化字符串时出现问题: {“map”:[{“entry”:{“string”:”parsedComparingDate”,”date”:”2014-03-08 23:00:00.0 UTC”}}]} 从BATCH_JOB_EXECUTION_CONTEXT表中,使用方法JdbcJobExecutionDao.getJobExecution() 。 我知道春季批次使用xstream 1.3,但在我的Pom中,我有: 春季批次2.1.9 ; xstream 1.4.1 (inheritance自smooks); jettison 1.3.3 (inheritance自cxf); 此外,我读到xstream 1.3不能正常使用jettison 1.3.3,但使用xstream 1.3(不包括pom的xstream 1.4.1)工作正常,而使用xstream 1.4.1或major,我发现以下exception: Caused by: java.lang.InstantiationError: java.util.Map$Entry at sun.reflect.GeneratedSerializationConstructorAccessor1.newInstance(Unknown Source) [:1.6.0_23] at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [rt.jar:1.6.0_23] at com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider.newInstance(Sun14ReflectionProvider.java:75) [xstream-1.4.1.jar:] at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.instantiateNewInstance(AbstractReflectionConverter.java:424) [xstream-1.4.1.jar:] at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:229) [xstream-1.4.1.jar:] at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) [xstream-1.4.1.jar:] at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) [xstream-1.4.1.jar:] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) [xstream-1.4.1.jar:] at […]

Maven:缺少工件com.sun:tools:jar:POM.xml中的1.6.0编译时exception

当我试图为工具添加依赖性时,我得到一个奇怪的问题并在我的pom.xml中获得编译时exception。 jar显示如下( Missing artifact com.sun:tools:jar:1.6.0 ) 我已将JAVA_HOME变量设置如下: JAVA_HOME :C:\ Program Files \ Java \ jdk1.6.0_34 当我将它硬编码到JDK1.6的实际路径时,我没有发现任何错误,如下所示。 com.sun tools 1.6.0 system C:\Program Files\Java\jdk1.6.0_34\lib\tools.jar 但我知道这不是好习惯。 请求解决此错误的指导。

使用不同的Spring属性进行集成测试

我正在使用Selenium测试一个使用Spring开发的Web应用程序来检查Web应用程序是否为用户显示了正确的内容,并且他能够执行规范中的所有操作。 其他开发人员正在使用内存中的假Hibernate数据库(HSQLDB)进行unit testing。 显然,我必须使用程序使用的真实数据库进行测试。 Spring应用程序上下文的JDBC参数由Spring在运行时加载(或编译时用于构建WAR文件)。 Spring使用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer找到的属性来配置webapp和测试的应用程序上下文,并且测试和webapp共享XML配置文件。 根据Maven配置文件,unit testing或集成测试,属性需要不同。 我尝试了几种方法,没有成功: 使用较低级别的SQL查询开发自己的DAO。 这是浪费时间和最后的解决方案。 由于外键约束和数据库模型的更改,并且鉴于应用程序具有相当稳固(经过unit testing)的DAO集,它确实是最愚蠢的选项。 使用Mavenfilter并在那里定义JDBC属性。 问题是属性在主应用程序和unit testing之间共享,因为tomcat:redeploy目标包括unit testing。 然后应用程序无法连接到真正的数据库。 在不同文件夹中具有不同属性。 Spring根本不关心配置文件的Surefire配置中定义的额外资源,无论是使用testResources还是资源 。 奇怪的是,这种方法非常适用于为主应用程序中的每个环境提供不同的JDBC参数。 我们在src / main / resources中有几个文件夹,其中包含覆盖src / main / resources中默认属性的属性。 它对src / test / resources的工作方式不同。 我甚至不知道如何找到这种行为的原因。 让Spring根据用户定义的Maven参数加载不同的属性文件。 相同的属性用于主应用程序和unit testing。 当它无法找到属性文件时,Spring也会抱怨(强迫我创建带有空文件的目录只是为了让构建完成)。 为什么当前的构建配置与开发人员配置文件(开发人员,测试服务器……)+测试配置文件(单元测​​试)同时运行且属性没有相互覆盖? 因为Maven会在启动unit testing时使Spring查看src / test / resources,并在启动构建目标时查看src / main / resources。 不幸的是,没有像这样的集成测试的默认配置。

在集成测试不起作用之前启动apache服务器

我有一个名为GroupWebApplication的Web应用程序。 使用pom.xml文件我只是创建我的应用程序的战争并部署到tomcat服务器。 这基本上是一个maven项目。 我已经为tomcat7 apache服务器添加了插件。 现在我想要启动tomcat服务器,然后运行集成测试,在集成测试完成后,我想停止服务器。 基本上我正在使用TestNg的testng.xml文件framework.testng.xml文件包含集成测试的所有类。 手动它工作正常,即手动启动服务器并运行测试。 这是pom文件: org.testng testng 6.3.1 test sGroupWebApplication Integration Test src/main/resources org.apache.maven.plugins maven-dependency-plugin 2.4 resource-dependencies initialize unpack-dependencies com.company.integration.test engine **\/*.xpi,**\/*.exe,**\/*.so, **\/*.ftl,**\/*.css,**\/*.woff, **\/*.properties,**\/*.png,**\/chromedriver,**\/*.MF ${project.build.directory}/classes org.apache.tomcat.maven tomcat7-maven-plugin 2.0 http://localhost:8080/manager/text localhost /GroupWebApplication admin s3cret tomcat7-run run-war-only pre-integration-test true tomcat7-shutdown shutdown post-integration-test org.apache.maven.plugins maven-release-plugin 2.4.2 org.apache.maven.plugins maven-compiler-plugin 3.1 ${target.jdk} ${target.jdk} org.apache.maven.plugins maven-jar-plugin 2.4 […]

消除Maven POM冗余

我有一个父POM与以下配置 com.example parent 1.2-SNAPSHOT 从此父POMinheritance的每个子项目都具有如下配置: com.amadeus.jcp.ui.skinning.skinning-system parent 1.2-SNAPSHOT 我希望所有这些项目版本号保持同步。 目前,如果我将父版本更改为1.3,则必须将所有子项目版本更改为1.3。 有什么办法可以避免重复所有子项目中的版本号吗? 我尝试用以上代替 com.amadeus.jcp.ui.skinning.skinning-system parent 和 com.amadeus.jcp.ui.skinning.skinning-system parent ${project.version} 但这些都不奏效。 我正在使用Maven 2.1.0版。 谢谢,唐

Maven不生成“persistence.xml”文件

我在maven项目网页上阅读了这篇文章 ,其中列出了不同的目录布局(例如:src / main / resources,用于Application / Library资源)。 问题是当我运行以下命令( 在这里找到 )时: mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 未创建src / main / resources / META-INF目录。 这对我很重要,因为我想要访问该目录中的“persistence.xml”。 我应该在mvn命令中添加一个选项吗? 如何自动生成包含“META-INF / persistence.xml”文件的“src / main / resources”? 谢谢,问候

如何正确配置嵌入式OpenEJB容器以进行测试?

这是我的SLSB: @Stateless public class MyService { PersistenceContext(unitName = “abc”) EntityManager em; public boolean exists(int id) { return this.em.find(Employee.class, id) != null; } } 这是我的persistence.xml (我正在使用Glassfish v3): org.hibernate.ejb.HibernatePersistence java:/MyDS 现在我正在尝试使用OpenEJB嵌入式容器创建测试。 这是我的测试类: class MyServiceText { @Test public void testChecksExistence() throws Exception { Properties properties = new Properties(); properties.setProperty( javax.naming.Context.INITIAL_CONTEXT_FACTORY, “org.apache.openejb.client.LocalInitialContextFactory” ); InitialContext ic = new InitialContext(properties); // […]

如何在Maven 2中使用自定义注释处理器?

在我们的企业应用程序中,我们正在寻找一种从Java类中收集数据的动态方法。 我们创建了一个带有name属性的自定义注释接口( @interface )。 我们想从所有带注释的类中收集此属性的值。 我设法为自定义注释创建AnnotationProcessorFactory和AnnotationProcessor 。 由于我们使用的是Maven 2,因此我将以下内容添加到主项目的pom.xml中的插件中。 org.codehaus.mojo apt-maven-plugin 1.0-alpha-5 our.company.api.component.lister.ComponentAnnotationProcessFactory 这属于主项目,有几个子项目。 工厂和定制处理器属于这些子项目之一。 自定义注释分散在所有子项目中,这就是我将插件放在主项目的pom.xml中的原因。 问题是当我发出mvn apt:process命令时,我收到了关于没有处理器的注释的警告,我们的自定义注释就在其中。 我认为这意味着该插件无法找到工厂类。 我应该怎么做才能让插件找到工厂和处理器文件? 编辑: 项目层次结构非常简单: main_project |-sub_project1 |… |-sub_projectn 该插件位于main_project的pom.xml中。 假设工厂和处理器在sub_project1 ,自定义注释在sub_project2 , sub_project3 ,…, sub_projectn