我正在做一个相当大的Maven项目。 我们大概有大约70个左右的个体工件,大致分为两个共享代码库和10个使用它们的应用程序。 所有这些项目都位于命名空间com.mycompany.* 。 大多数情况下,我们正在运行快照构build。 所以要完成一个应用程序的构build,我可能会首先构build库项目,以便将它们安装到我的本地存储库(例如, mycompany-libname-2.4-SNAPSHOT.jar )。 问题是,当我然后去build立应用程序。 出于某种原因,Maven希望检查主要的两个公共仓库(maven-net-repo和java-net-repo)以获取所有mycompany-*-SNAPSHOT.jar工件的更新。 当然,他们不在那里,一切都最终解决了我刚刚build立到我的本地存储库的版本,但我希望Maven停止这样做,因为(一)它使我感觉像一个坏net.citizen不断地检查这些存储库中永远不会存在的东西,(b)在我的构build过程中增加了一些不必要的和烦人的networking延迟。 我大多数时间都是在离线模式下运行maven来解决这个问题,但这样做并不理想,因为偶尔会对公共库进行更新。 所以我正在寻找的是一个解决scheme,这将导致Maven不检查给定存储库的更新满足某些标准的工件 – 在这种情况下,如果Maven会忽略SNAPSHOT版本或工件com.mycompany命名空间。
网上有很多关于Maven如何坏的话题。 几年来我一直在使用Maven的一些特性,在我看来最重要的好处是依赖pipe理。 Maven的文档还不够,但是通常当我需要完成一些工作的时候,我想到了一次,然后工作(例如当我实现签署jar子时)。 我不认为Maven是伟大的,但它确实解决了一些问题,如果没有它,这将是一个真正的痛苦。 那么,为什么Maven有这样一个糟糕的代表,Maven可以期待什么问题? 也许有更好的select,我不知道? (例如,我从来没有详细看过常春藤。) 注意:这不是试图引起一个参数。 这是一个尝试清除FUD。
在多核/多CPU机器上使用maven构build时,通常可以并行构build不同的子项目。 有没有办法做到这一点与maven? 有没有这个/什么的插件?
我们正在使用Maven进行大型构build过程(> 100个模块)。 我们一直在源代码控制中存储我们的外部依赖,并使用它来更新本地回购。 但是,我们准备gradle后可以caching中央,这样我们就不必主动下载所有第三方(但是我们仍然可以从本地回购)。 另外,我们希望从夜间版本发布我们的内部构build工件,以便开发人员不必构build世界。 我们正在考虑Nexus和Artifactory。 有什么理由比较喜欢一个呢? 还有其他我们应该考虑的吗?
我想利用Maven提供的用于pipe理项目中的依赖项的function。 我对Maven如何工作的简短理解是,它将获得所需的JAR,然后与这些库一起构build项目。 目前我有一个简单的POM文件设置为testing: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.jamesgoodwin.test</groupId> <artifactId>com.jamesgoodwin.test</artifactId> <version>0.0.1-SNAPSHOT</version> <build> </build> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.0.0.RELEASE</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies> </project> 通常,当pipe理项目的依赖关系时,我会将项目或JAR添加到项目构buildpath,然后能够构build我的项目。 但是在使用M2Eclipse时,依赖关系不会自动添加到构buildpath中。 有什么地方我需要configuration这个让Eclipse知道Maven正在pipe理依赖关系吗?
我正在尝试使用Spring 3.0(和maven)来完成我的第一个项目。 我在一些项目中一直使用Spring 2.5(和入门版本)。 不过,我有点困惑,我必须在我的pom.xml中定义为依赖的模块。 我只想使用核心容器函数(bean,core,context,el)。 我曾经这样做过: <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>2.5.6</version> </dependency> 但现在我有点困惑,因为3.0版没有完整的弹簧模块。 我尝试了以下,但它没有奏效(一些类缺失)。 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.0.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>3.0.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>3.0.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.0.0.RELEASE</version> </dependency> 任何帮助,将不胜感激!
有没有一个Maven插件,可以让你检查版本库中是否有更新版本的依赖关系? 说,你正在使用版本1.2的依赖X. 现在X版本发布1.3版本。 我想知道,基于在我的项目中使用的依赖关系,哪些依赖关系有更新的版本可用。
我收到以下错误。 看来有多个日志框架绑定到sl4j。 不知道如何解决这个问题。 任何帮助是极大的赞赏。 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
我是Java的新手,当我开始开发时,我的朋友推荐Maven进行项目pipe理。 我几乎立即意识到这是一个不可或缺的工具,那时我正在想所有的程序员都用它。 但是当我在NetBeans网站上看到统计信息时,我感到很震惊:67%的开发人员没有使用Maven。 为什么? 是否有一些替代工具使项目pipe理变得简单? UPDATE 我同意feicipet在100%。 IDE独立的,这是非常好的。 这是根据我自己的经validation明的。 首先,我们的团队使用了Eclipse,然后我们决定切换到使用IDEA帮助我们的NetBeans。 这并不重要,因为即使使用控制台,项目也可以运行:) 结构良好,清洁的项目。 我认为Maven结构约定是非常有帮助的,因为testing和主代码是分开的。 项目pipe理。 Maven不仅是构build工具 ,它还使您能够configuration环境,运行unit testing以及创build报告。 对于我来说,当有经验的编程谈论Maven的困难的时候,当我看到Ant在Maven的一个项目中向我展示了一个奇迹时,感到惊讶。 所有关于从Ant过渡的复杂性的评论都很奇怪。 这是两种不同的逻辑,你期望什么? 文档有一些问题,这真的很糟糕。 但我认为这种情况会好转
我正在尝试使用maven为一个名为“logmanager”的小型家庭项目生成一个可执行的jar文件,就像这样: 我怎样才能创build一个使用Maven的依赖关系的可执行JAR? 我将那里显示的片段添加到pom.xml,然后运行mvn assembly:assembly。 它在logmanager / target中生成两个jar文件:logmanager-0.1.0.jar和logmanager-0.1.0-jar -with-dependencies.jar。 双击第一个jar时出现错误: Could not find the main class: com.gorkwobble.logmanager.LogManager. Program will exit. 当我双击jar-with-dependencies.jar时,出现一个稍微不同的错误: Failed to load Main-Class manifest attribute from: C:\EclipseProjects\logmanager\target\logmanager-0.1.0-jar-with-dependencies.jar 我复制并粘贴了path和类名,并检查了POM中的拼写。 我的主类从Eclipse启动configuration启动罚款。 有人可以帮我弄清楚为什么我的jar文件不能运行? 另外,为什么有两个jar子开始呢? 如果您需要更多信息,请与我们联系。 这里是完整的pom.xml ,供参考: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.gorkwobble</groupId> <artifactId>logmanager</artifactId> <name>LogManager</name> <version>0.1.0</version> <description>Systematically renames specified log files on a scheduled basis. Designed […]