【发布时间】:2011-04-30 10:10:17
【问题描述】:
我在 NetBeans 中启动了一个新的 Maven 项目,接受所有默认值。删除了所有 JAR 依赖项的 POM 被剪切并粘贴在此问题的底部。
应用程序读取各种属性文件(例如日志记录和配置)。它还读取外部资源,例如字体、图像和声音。我不希望将所有这些资源捆绑到 JAR 文件中。相反,我计划将它们部署在部署 JAR 的目录下的子目录中。
项目目录结构的简化视图如下所示:
-src
|---main
|---java
|---com.mypackage, etc
|---resources
|---conf
|---fonts
|---images
|---sounds
+target
我希望在一个干净的构建之后拥有如下所示:
+src
-target
|---myproject-1.0.0.jar (compiled contents of "src/main/java" ONLY)
|---conf
|---fonts
|---images
|---sounds
但是,当我通过 NetBeans(或与此相关的命令行)执行“清理并构建”或“执行”时...我实际上得到的外观像这样:
+src
-target
|---classes
|---("src/main/java" and "src/main/resources" slammed together)
|---myproject-1.0.0.jar (the "classes" subdirectory JAR'ed up)
有人能指出我获得第一个结果而不是第二个结果的正确方向吗?如果这是一个愚蠢的问题(我是 Maven 菜鸟),或者我忽略了之前提出的重复问题,我深表歉意。但是,从我在 Stack Overflow 上进行的搜索...看起来所有重复的问题都试图以 other 的方式进行! (即将资源放入 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>steveperkins</groupId>
<artifactId>myproject</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<name>My Project</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.4</source>
<target>1.4</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
...
【问题讨论】: