小编Jea*_*evy的帖子

在Maven2中,构建WAR和EAR以在单个POM中包含该WAR的最简单方法是什么?

情况非常简单.我有一个Java webapp,我正在转换为使用Maven构建.目前,应用程序使用Ant构建到单个WAR文件中,然后使用非常简单的application.xml将其捆绑到EAR中.

maven-war-pluginmaven-ear-plugin看起来都相当简单的我,看来他们设置我将不得不考虑上述两个不同的项目,该项目WAR的EAR项目的依赖.这似乎有点不方便,特别是因为WAR项目的配置文件设置将针对每个环境进行更改,这似乎会强制我在每次尝试构建EAR时复制该构建调整.

所有这一切:是否有一种直接的方式来构建WAR并将其打包到这个简单易用的EAR中?我想避免将它们作为两个单独的项目进行维护,但同样也不愿意使用程序集来实现这一目标.

java maven-2 pom.xml maven-war-plugin maven-ear-plugin

9
推荐指数
1
解决办法
7064
查看次数

maven-buildnumber-plugin svn修订版仅在不使用格式时可用

在使用maven-buildnumber-plugin 1.0 beta 4时,似乎我可以获得svn修订版,除非我<format>在配置中使用标记.一旦我使用<format><item>buildnumber</item>标记,我得到一个自动递增的数字,但它不再对应于svn修订版,我不知道如何取回它.有没有办法在s内使用svn修订号<format>?文档不是很清楚.

java build-automation maven-2 buildnumber-maven-plugin

9
推荐指数
1
解决办法
6008
查看次数

Maven原型目录:指定自定义位置

我正在为Maven部署一个Nexus存储库,并在其上部署自定义原型.

我想执行 mvn archetype:generate并提示内部+自定义原型列表.

我发现提示自定义原型的唯一方法(以符合人体工程学的方式,即没有URL)是将原型 - 目录路径定义为设置中的属性.这不是一个有效的解决方案,因为我想要几个目录(并且在CLI中不能覆盖此属性).

有没有人知道如何做到这一点?

提前致谢,


[编辑]我发现了一个相关的问题报告:http://jira.codehaus.org/browse/ARCHETYPE-273

我注意到,在期间archetype:generate,maven试图到达中央存储库:

[DEBUG] Searching for remote catalog: http://repo1.maven.org/maven2/archetype-catalog.xml
[DEBUG] Searching for remote catalog: http://repo1.maven.org/maven2
Run Code Online (Sandbox Code Playgroud)

它以"连接超时"结束,因为我没有(也不想)指定代理...

我不明白为什么maven不检查nexus目录...

nexus maven maven-archetype

9
推荐指数
1
解决办法
8492
查看次数

如何使用Maven创建具有完整依赖关系的独立应用程序?

我有一个使用Maven 2构建的桌面Java应用程序(但是如果有帮助的话我可以升级到Maven 3)有许多开源依赖项.我现在正尝试将其打包为独立版,以便最终用户无需安装maven或其他任何东西.

我已经成功地使用maven-assembly-plugin来构建一个包含所有依赖项的jar,但这并不是我想要的,因为在使用LGPL库时,您需要将您正在使用的库重新分发为单独的jar.

我希望Maven使用我的代码构建一个包含jar的zip,并且MANIFEST.MF引用我需要的其他jar和其他jar.这似乎是标准做法,但我看不出怎么做.

这是我的pom的摘录

     <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <compilerVersion>1.6</compilerVersion>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <argLine>-Dfile.encoding=UTF-8</argLine>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.company.widget.Main</mainClass>
                            <packageName>com.company.widget</packageName>
                            <addClasspath>true</addClasspath>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.company.widget.Main</mainClass>
                            <packageName>com.company.widget</packageName>
                            <addClasspath>true</addClasspath>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build> 
Run Code Online (Sandbox Code Playgroud)

编辑:采取卡尔斯的想法

创建了一个名为descriptor.xml的文件

<?xml version="1.0" encoding="UTF-8"?>
<assembly
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>distribution</id> …
Run Code Online (Sandbox Code Playgroud)

java maven maven-assembly-plugin maven-jar-plugin

9
推荐指数
2
解决办法
1万
查看次数

在Hudson中的视图之间移动作业

我在哈德森和多个观点中也有很多工作.我想要的是在视图之间移动作业.例如,Job1是view1的一部分,我想将该作业从view1移动到view2,它是如何实现的.

hudson hudson-plugins jenkins

8
推荐指数
2
解决办法
6426
查看次数

使用maven创建文档

我正处于重访maven的过程中.当我们上次查看这个时,我们的团队经历了糟糕的经历,因为在maven从1.x重新架构到2.x期间,我们需要的很多依赖项没有被移动到新的存储库中.但是,我现在有时间重新考虑.

我有兴趣使用maven和LaTeX或DocBook来创建文档,我想知道是否有人有任何共享经验,项目/模块结构,使用好的插件等等...

非常感谢 :-)

编辑:

只是为了澄清,我正在寻找一篇技术文章/书,而我想要的工件可能是PDF.

latex maven-2 docbook maven-pdf-plugin

7
推荐指数
3
解决办法
7218
查看次数

如何将SVN修订号注入JAR?

我希望我的JAR/WAR应用程序知道它的源代码的SVN版本号是什么.我希望稍后为网页底部的Web最终用户呈现此修订号,等等.

是否有任何现有的Maven插件可以自动化该过程?我认为插件必须从中收集信息svn并保存到某些文件中,例如src/resources/revision.txt.

java svn maven-2 buildnumber-maven-plugin

7
推荐指数
1
解决办法
4721
查看次数

HTTP状态409 - 目标部署路径[...]与POM的预期路径前缀不匹配

我使用Artifactory作为Maven存储库,我不是管理员(公司回购).我正在尝试使用XmlSchema(通过appfuse-basic-struts archetype的许多依赖项)但是我遇到了一个我运行mvn包时无法理解的问题:

HTTP状态409 - 目标部署路径'org/apache/ws/commons/XmlSchema/1.1/XmlSchema-1.1.pom'与POM的预期路径前缀'org/apache/ws/commons/XmlSchema/SNAPSHOT'不匹配.请验证您的POM内容是否正确,并确保源路径是有效的Maven存储库根路径.

类型状态报告

message目标部署路径'org/apache/ws/commons/XmlSchema/1.1/XmlSchema-1.1.pom'与POM的预期路径前缀'org/apache/ws/commons/XmlSchema/SNAPSHOT'不匹配.请验证您的POM内容是否正确,并确保源路径是有效的Maven存储库根路径.

description由于与资源的当前状态冲突,无法完成请求(目标部署路径'org/apache/ws/commons/XmlSchema/1.1/XmlSchema-1.1.pom'与POM的预期路径前缀不匹配'org/apache/ws/commons/XmlSchema/SNAPSHOT'.请验证您的POM内容是否正确,并确保源路径是有效的Maven存储库根路径.).Apache Tomcat/6.0.18

即使在传递依赖中,我也找不到它.谁能解释一下我有什么麻烦?

我在使用archiva重新部署时发现这篇文章使用Maven-3获得了Http 409错误,但它似乎与我的问题不符.

编辑1:当我不使用我的公司回购时,这项工作非常顺利.

编辑2:这里通过http的回购视图:

Index of repo/org/apache/ws/commons/XmlSchema/1.1

Name                     Last modified      Size

../
maven-metadata.xml->         -    -
maven-metadata.xml.md5->     -    -
maven-metadata.xml.sha1->    -    -
XmlSchema-1.1.jar        18-Sep-2006 20:12  124.96 KB
XmlSchema-1.1.jar.asc->      -    -
XmlSchema-1.1.jar.md5    18-Sep-2006 20:12  32 bytes
XmlSchema-1.1.jar.sha1   18-Sep-2006 20:12  40 bytes
XmlSchema-1.1.pom->          -    -
XmlSchema-1.1.pom.md5->      -    -
XmlSchema-1.1.pom.sha1->     -    -

编辑3:依赖性

mvn dependency:tree

[INFO] com.edf.dpi.esip.gdt:gdt-ihm:war:7.0.1-SNAPSHOT
[INFO] +- org.appfuse:appfuse-struts:war:2.0-m5:compile
[INFO] +- org.appfuse:appfuse-struts:warpath:2.0-m5:compile …

xsd artifactory maven

7
推荐指数
1
解决办法
2720
查看次数

Eclipse PMD找不到basic.xml

尝试在Eclipse/Juno中为项目运行,我收到此错误.

An internal error occurred during: "ReviewCode".
Couldn't find the class Can't find resource rulesets/basic.xml.  Make sure the resource is a valid file or URL or is on the CLASSPATH.  Here's the current classpath: C:\eclipsejuno\eclipse\\plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

java eclipse pmd eclipse-juno

7
推荐指数
2
解决办法
9738
查看次数

为什么Maven JAR插件不包含一些资源?

我有一个企业应用程序,我正在从Ant构建转换为Maven.它几乎完全转换; 这是我需要解决的最后一件事.应用程序打包为一个EAR文件,其中包含两个WAR,并具有一个JAR模块,该模块提供应用程序的所有核心功能.

我正在使用Freemarker模板库来生成应用程序发送的自动电子邮件的消息正文.Freemarker需要将*.ftl模板文件放在类路径上,因为这是一个不是特定于一个WAR或另一个WAR的核心应用程序功能,所以它需要在JAR中.

定义JAR的Maven模块具有以下POM:

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <relativePath>../../pom.xml</relativePath>
        <groupId>com.company.project</groupId>
        <artifactId>projectName</artifactId>
        <version>1.8.0</version>
    </parent>

    <artifactId>core</artifactId>
    <packaging>jar</packaging>
    <name>Core Application</name>

    <profiles>
       <!-- snip -->
    </profiles>

    <dependencies>
       <!-- snip -->
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.ftl</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <!-- snip -->
        </plugins>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

*.ftl文件位于src/main/resources/template /,其中一些位于template /中的子目录中.src/main/resources中还有其他文件 - 一些.properties和一些.xml,一些位于根目录,一些位于目录结构下.

当我在这个模块(或父模块)上运行包阶段时,作为构建过程的一部分创建的目标/ classes目录包含模板目录,该模板目录又包含所有*.ftl,*.xml和*具有适当目录结构的.properties文件.如果我手动JAR这个目录,一切都很完美.

这里变得奇怪而且我迷路了:当maven-jar-plugin创建JAR时,它包含XML和属性文件,但是JAR中完全没有模板目录,并且其内容无处可寻.

如您所见,我尝试明确地包括**/*.ftl.它没有任何区别; 我可以排除整个"包含"标记,我得到完全相同的行为.

我正在使用Maven 3.0.5和maven-jar-plugin 2.4.

maven-3 maven maven-jar-plugin

7
推荐指数
1
解决办法
2万
查看次数