maven war插件maven编译器插件

maven war插件maven编译器插件,maven,plugins,war,Maven,Plugins,War,我是马文的新手;我需要在两个不同的目录中编译和打包2 war文件,即使源代码相同(只更改web.xml文件) 试着更好地解释: LT的目录结构: <DIR> LT1_war <DIR> LT_war pom.xml 这是LT1_war中pom文件的一部分: <build> <finalName>LT1</finalName> <resou

我是马文的新手;我需要在两个不同的目录中编译和打包2 war文件,即使源代码相同(只更改web.xml文件)

试着更好地解释:

LT的目录结构:

 <DIR>          LT1_war
  <DIR>          LT_war
                 pom.xml
这是LT1_war中pom文件的一部分:

<build>
    <finalName>LT1</finalName>
    <resources>
        <resource>
            <directory>../LT_war/src/</directory>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.0</version>
            <configuration>
                <excludes>**/.svn/**</excludes>
            </configuration>
            <executions>
                <execution>
                    <id>exploded</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>exploded</goal>
                    </goals>
                </execution>
                <execution>
                    <id>war</id>
                    <phase>package</phase>
                    <goals>
                        <goal>war</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

LT1
../LT\u war/src/
org.apache.maven.plugins
maven编译器插件
1.5
1.5
org.apache.maven.plugins
maven战争插件
2
**/.svn/**
爆炸了的
准备包装
爆炸了的
战争
包裹
战争

有几点我认为你正在做的事情是非常错误的:

  • Maven项目应该永远不要访问自己模块文件夹之外的文件。所以LT1请远离它的文件夹

  • 如果可以的话,尽量减少战争项目。无论如何,模块化您的代码,使WAR只依赖于包含实际内容的JAR文件

  • 一个WAR文件“借用”了另一个WAR文件中的东西,如果让两个WAR文件都依赖于您移入此类JAR文件的代码,那么可能会更好地修复这两个WAR文件

  • 如果可以的话,停止使用Java5;从2009年起就已经下线了。另外,考虑将源/目标级别迁移到父项目,这样就不会重新定义相同的,但有一个一致的java版本

  • 谈到旧版本,为什么您仍然需要排除
    .svn
    文件夹(现在Subversion工作空间的根目录中只有一个
    .svn
    文件夹,这不会影响Maven WAR插件)

因此,您的项目结构可以如下所示:

ROOT
   MEAT (packaging JAR, where your classes live)
   LT (packaging WAR, depends on MEAT)
   LT1 (packaging WAR, depends on MEAT, and stays the heck out of LT)

添加(如评论中指出的,忘记了某些方面)

虽然MEAT是打包罐的一部分,但您希望它也包含进入
webapp
的内容,而不会出现在类路径上。如果您使用的是相当新的
servlet api
,可以通过如下方式为MEAT提供一个参考资料文件夹来实现:

src/main/resources/META-INF/resources/...

< > >代码>…/META-IMF/Reals/Flut.JPEG 将在部署的战争中出现,如“代码>/Falp.JPG< /Cl>”(而不是它只是添加到java类路径)。
  • Maven项目应该永远不要访问自己模块文件夹之外的文件。所以LT1请远离它的文件夹

  • 如果可以的话,尽量减少战争项目。无论如何,模块化您的代码,使WAR只依赖于包含实际内容的JAR文件

  • 一个WAR文件“借用”了另一个WAR文件中的东西,如果让两个WAR文件都依赖于您移入此类JAR文件的代码,那么可能会更好地修复这两个WAR文件

  • 如果可以的话,停止使用Java5;从2009年起就已经下线了。另外,考虑将源/目标级别迁移到父项目,这样就不会重新定义相同的,但有一个一致的java版本

  • 谈到旧版本,为什么您仍然需要排除
    .svn
    文件夹(现在Subversion工作空间的根目录中只有一个
    .svn
    文件夹,这不会影响Maven WAR插件)

因此,您的项目结构可以如下所示:

ROOT
   MEAT (packaging JAR, where your classes live)
   LT (packaging WAR, depends on MEAT)
   LT1 (packaging WAR, depends on MEAT, and stays the heck out of LT)

添加(如评论中指出的,忘记了某些方面)

虽然MEAT是打包罐的一部分,但您希望它也包含进入
webapp
的内容,而不会出现在类路径上。如果您使用的是相当新的
servlet api
,可以通过如下方式为MEAT提供一个参考资料文件夹来实现:

src/main/resources/META-INF/resources/...

< > >代码>…/META-IMF/Reals/Flut.JPEG 将在部署的战争中出现,如“代码>/Falp.JPG< /Cl>”(而不是它只是添加到java类路径)。
  • Maven项目应该永远不要访问自己模块文件夹之外的文件。所以LT1请远离它的文件夹

  • 如果可以的话,尽量减少战争项目。无论如何,模块化您的代码,使WAR只依赖于包含实际内容的JAR文件

  • 一个WAR文件“借用”了另一个WAR文件中的东西,如果让两个WAR文件都依赖于您移入此类JAR文件的代码,那么可能会更好地修复这两个WAR文件

  • 如果可以的话,停止使用Java5;从2009年起就已经下线了。另外,考虑将源/目标级别迁移到父项目,这样就不会重新定义相同的,但有一个一致的java版本

  • 谈到旧版本,为什么您仍然需要排除
    .svn
    文件夹(现在Subversion工作空间的根目录中只有一个
    .svn
    文件夹,这不会影响Maven WAR插件)

因此,您的项目结构可以如下所示:

ROOT
   MEAT (packaging JAR, where your classes live)
   LT (packaging WAR, depends on MEAT)
   LT1 (packaging WAR, depends on MEAT, and stays the heck out of LT)

添加(如评论中指出的,忘记了某些方面)

虽然MEAT是打包罐的一部分,但您希望它也包含进入
webapp
的内容,而不会出现在类路径上。如果您使用的是相当新的
servlet api
,可以通过如下方式为MEAT提供一个参考资料文件夹来实现:

src/main/resources/META-INF/resources/...
例如,
../META-INF/resources/flower.jpeg
将出现在已部署的