Tag: maven

多次安装:在单个pom.xml中安装文件

(请在回答之前至少阅读:这是一个临时措施 !不,我们不想设置本地存储库管理器并手动运行脚本) 我们有一个带有一些依赖项的遗留项目,我们有一个本地副本,包括source和javadoc,并且已被certificate在生产中运行良好,但在Central中没有相同的质量。 我们想要使用我们已经拥有的那些jar子。 我发现我可以手动运行一个适当复杂的mvn install:install-file命令来获取本地机器的存储库中注入的工件,但是我想让它作为我们各种模块的普通maven构建的一部分工作。 鉴于我有一个包含多个jar的空白模块,每个需要使用install:install-file插入, 我应该如何在我的pom.xml中执行此操作以完全符合正常的Maven构建? 或者我可以只附加多个jar作为模块的输出,并以某种方式附加javadoc和源代码)? (并且,请不要提交关于提交到中央或设置本地存储库管理器的建议。这是一个临时解决方案,直到我们有机会升级到更新版本的依赖项)

仅编译Maven中的选定文件

我想只编译源目录中的选定文件或目录(包括子目录)。 我很确定我可以使用maven-compiler-plugin配置的来做到这一点,但它似乎不能正常工作,因为它仍然将所有类编译成target/classes 。 真正奇怪的是,Maven输出表明该设置实际上是有效的,因为: maven-compiler-plugin 2.5.1 com/example/dao/bean/*.java 我有: [INFO] Compiling 1 source file to c:\Projects\test\target\classes 但是没有编译器的配置,我有: [INFO] Compiling 14 source file to c:\Projects\test\target\classes 然而,在这两种情况下,如我所提到的,所有14个类都被编译成target/classes 。 你能解释一下或建议另一个解决方案来只编译选定的文件吗?

Maven没有正确选择JAVA_HOME

我在Windows环境中使用maven来编译我的项目。 虽然我刚刚创建了项目并添加了各种库的依赖项。 当我添加它们时,maven开始抱怨缺少的tools.jar ,所以我在下面添加到我的pom.xml : com.sun tools 1.6 system ${java.home}/../lib/tools.jar 当我运行maven安装时,我得到了一个错误的jar错误,如下所示: [ERROR] Failed to execute goal on project GApp: Could not resolve dependencies for project GApp:GApp:war:0.0.1-SNAPSHOT: Could not find artifact com.sun:tools:jar:1.6 at specified path C:\Program Files\Java\jre6\lib\tools.jar -> [Help 1] 问题是tools.jar位于“ C:\Program Files\Java\jdk1.6.0_26\lib ”中并且在JAVA_HOME环境变量中正确设置但是maven仍然在jre文件夹中查找错误消息“ C:\Program Files\Java\jre6\lib\tools.jar “。 C:\>echo %JAVA_HOME% C:\Program Files\Java\jdk1.6.0_26 有趣的是 :当我设置依赖的完整路径时,它工作得很好。 但我不想硬编码。 com.sun tools […]

spring使用java 8在WebSphere上运行应用程序时出现exception

在WebSphere 9.0 java 8上运行应用程序时,我收到了几个IllegalStateException , CannotCompileException和LinkageError 。 这是堆栈的错误跟踪: Caused by: java.lang.IllegalStateException: javassist.CannotCompileException: by java.lang.LinkageError: org.springframework.aop.framework.ProxyCreatorSupport at org.springframework.aop.framework.JavassistApplicationContext.(JavassistApplicationContext.java:61) … 114 more Caused by: javassist.CannotCompileException: by java.lang.LinkageError: org.springframework.aop.framework.ProxyCreatorSupport at javassist.ClassPool.toClass(ClassPool.java:1120) at javassist.ClassPool.toClass(ClassPool.java:1063) at javassist.ClassPool.toClass(ClassPool.java:1021) at javassist.CtClass.toClass(CtClass.java:1259) at org.springframework.aop.framework.JavassistApplicationContext.(JavassistApplicationContext.java:59) … 114 more Caused by: java.lang.LinkageError: org.springframework.aop.framework.ProxyCreatorSupport at java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:346) at java.lang.ClassLoader.defineClass(ClassLoader.java:283) at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) […]

Hibernate,Java 9和SystemException

我一直在尝试在Java 9 / Spring Boot 1.5.x / Maven项目中运行Hibernate 5.2.11应用程序,但是我在缺少类时失败了: Caused by: java.lang.NoClassDefFoundError: javax/transaction/SystemException at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:375) at org.jboss.logging.Logger$1.run(Logger.java:2554) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.jboss.logging.Logger.getMessageLogger(Logger.java:2529) at org.jboss.logging.Logger.getMessageLogger(Logger.java:2516) at org.hibernate.internal.HEMLogging.messageLogger(HEMLogging.java:28) at org.hibernate.internal.HEMLogging.messageLogger(HEMLogging.java:24) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:115) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:54) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) … 33 more 有没有人遇到此exception并知道解决方法? 我尝试为javax.bind或java.se.ee添加–add-modules ,但是他们没有帮助。 上面的错误显示在mavan-failsafe(2.20.1)集成测试中,它使用Hibernate启动Spring上下文。 应用程序没有任何Java 9特定代码。

为什么AspectJ编译时不编织Spring的@Configurable工作?

更新5:我已经下载了基于最新Eclipse的最新Spring ToolsSuite IDE。 当我将项目导入为Maven项目时,Eclipse / STS似乎使用Maven目标来构建我的项目。 这意味着AspectJ最终在Eclipse中正常工作。 更新4:我最终只是使用Maven + AspectJ插件进行编译时编织,有效地绕过了Eclipse的机制。 更新3:似乎AspectJ的Eclipse插件破坏了Eclipse正确发布到Tomcat的能力。 只有删除项目中的AspectJfunction,才能让它再次正确发布。 很烦人。 更新2:我现在在Eclipse中工作了。 这样说让我感到非常不舒服,但我不知道如何使用Eclipse或Maven构建它。 它似乎是一个编译问题而不是运行时问题。 更新1:看来我已经通过Maven构建工作了,但我不知道如何。 Eclipse仍然无法正常工作。 我在pom.xml中唯一改变的是添加这些(无关紧要的?)配置参数: 1.6 1.6 true true true 我实际上担心我会重复这个问题 ,其中一切都不一致。 随着我了解更多信息,我会更新此问题。 关于Eclipse,我通过采用我想编织的二进制方面取得了一些进展 – 在本例中是spring-aspects.jar – 并将其复制出我的类路径。 然后我将这个外部jar添加到我的Aspect Path中 。 执行此操作后,Eclipse在我的代码中正确显示了AspectJ标记。 令人讨厌的是,我不能将spring-aspects.jar留在我的Java Build Path中 ,这是由Maven通过Maven插件为我维护的。 但是,出于某种原因,除非将AspectJ插件显式添加到Aspect Path,否则AspectJ插件不会看到二进制方面。 原始post: @Configurable是一个Spring注释,它允许将依赖项注入到Spring外部实例化的对象中(例如,通过Hibernate或某些Factory类)。 我以前使用这个注释与加载时编织,它主要工作。 偶尔我会启动,没有任何东西会被注入。 这个问题催生了这个StackOverflow问题 。 答案并不多,但大多数人建议我尝试编译时编织,因为可靠性更高。 我为Eclipse和Maven安装了AspectJ插件。 这两者都产生了看似正确编译的类。 我在AspectJ编译之前在文本编辑器中打开了其中一个类,但没有找到对AspectJ的引用。 我在AspectJ编译后打开它,Eclipse和Maven生成的版本都引用了org.aspectj.weaver.MethodDeclarationLineNumber 。 这就是我认为它被正确编译的原因。 […]

如何从jar文件中排除属性文件?

我有一个具有以下项目结构的java应用程序: myProject | |—-src | | | |–main | | | |–resources | | | |–userConfig.properties | |–log4j.properties | |—target 我正在使用Maven来构建我的项目。 我正在使用maven命令来构建jar文件,如下所示: mvn package -DMaven.test.skip=true 我想从我的JAR文件中排除userConfig.properties文件,所以我更新了我的pom.xml ,如下所示: **/userConfig.properties 但它从编译代码所在的目标文件夹中排除。 并且应用程序将无法运行,因为它无法找到userConfig.properties文件。 谁能帮我?

从命令行运行jar时出现MessageBodyProviderNotFoundException

我正在使用Java Jersey框架(使用Maven),并使用IntelliJ作为我的IDE。 我遇到过这个运行时exception,只有在我尝试从命令行运行代码时才会发生(使用maven编译然后运行java -jar)但是在IntelliJ中运行时这是奇怪的。 我有一些Java代码将尝试在某个远程URL上进行HTTP GET并尝试将返回的JSON读入某些Lombok POJO: String targetUrl = “some valid URL”; WebTarget webTarget = client.target(targetUrl); Response response = webTarget.request(MediaType.APPLICATION_JSON_TYPE).get(); ParseResponse parseResponse = response.readEntity(ParseResponse.class); 我不知道为什么,但是当它击中执行“readEntity()”方法的最后一行时,我将得到以下错误: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=text/json; charset=utf-8 这很奇怪,因为我肯定在我的pom.xml中指定了jersey-media-json-jackson依赖项: org.glassfish.jersey.media jersey-media-json-jackson 2.23 这是我尝试将readEntity()转换为我的POJO类: @Data @JsonIgnoreProperties(ignoreUnknown = true) public class ParseResponse { @JsonProperty(“id”) private Integer id; …Other params… } 就像我之前提到的那样,奇怪的是,只有当我尝试在命令行上运行时才会发生这种情况,但在IntelliJ中运行时没有错误: […]

是否有可能只使用eclipse和共享构建一个java项目?

是否有可能实际构建一个包含java代码的maven项目,并且可以共享二进制文件? 问题:我正在尝试构建的项目需要大约3-4个小时,并且需要高互联网带宽。 我试图检查在其他几台机器中重新使用这个构建项目的可能性。 我之前使用过涉及makefile的c ++项目,这非常简单。 我是Java / eclipse的新手,需要帮助才能弄清楚这是否真的有可能。 PS:我确实试图找到现有的解决方案; 他们不是明星前锋,或者说他们不能这样做

Maven和JOGL库?

我在过去几天的空闲时间里一直在研究Maven,但似乎无法弄清楚如何组织项目以便使用JOGL库。 我最好喜欢以下内容: 如有必要,从此处自动下载特定于操作系统的JOGL zip文件(包含4个jar文件和一些本机库文件(.so / .dll)); 或依赖于Maven项目,该项目是其中一个文件的包装器。 适当地解压缩该zip文件,以便: jar文件被添加到类路径中并根据需要进行部署 本机库文件被添加到最终的jar文件中(这会使它们自动使用,还是需要更多参与?) 我认为我的部分问题是我不完全理解JOGL的使用,在运行代码时放置本机库的位置等等。我需要回到基础知识并编写JOGL hello世界,从中编译它命令行并从命令行运行它,以确切了解它对本机库的目录放置所需的内容; 实际上,我现在可能会这样做。 在第1项中,我发现了一些特定于操作系统的function; 可以基于系统的属性(包括操作系统)激活Maven配置文件。 那么我就可以激活一个Windows配置文件,它具有Windows特定的JOGL库的依赖性,对于Linux也是如此,并且都具有64位的改变自我。 (激活官方文档 / 非官方文档 。) 我尝试创建一个基于JOGL jar文件的Maven存储库,然后添加JOGL jar文件项目作为我项目的依赖项; 依赖项已下载,但未使用。 我不知道jar文件在哪里或如何使用它,解压缩等等。 这是我使用的命令。 简而言之: JOGL由四个.jar文件和一些本机库组成。 如何将这些文件集成到我的Maven项目中,以便我可以使用Maven编写JOGL应用程序来处理我的构建过程? 此外,我如何根据操作系统使用不同的文件集,因为本机库甚至.jar文件在Windows,Linux和Mac之间都有所不同。