如何使用Maven在目标文件夹中创建新目录

时间:2013-09-05 10:32:28

标签: java maven dependencies

我正在编写一个库,它将根据测试结果创建一个报告(想象一下像Surefire这样的东西)。我的问题是,我能够在target/目录中创建一个文件夹来保存报告并复制必要的文件,但只有在我自己构建库项目时才能这样做。

我想像Surefire插件一样实现相同的行为,这意味着如果我将我的库的依赖项放到某个项目中,让我们说myProject,那么我会在myProject/target/myLibrary之后得到类似<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <executions> <execution> <phase>generate-test-sources</phase> <configuration> <tasks> <echo message="Creating folder for the lib..." /> <mkdir dir="${report.folder}" /> <echo message="Copying Twitter Bootstrap libraries to the ${report.folder}" /> <copy todir="${report.folder}"> <fileset dir="src/main/resources/bootstrap"> <include name="**/**" /> </fileset> </copy> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> 的内容。建立。

顺便说一下,这就是我目前所拥有的

src/main/resources

还有奖金问题,{{1}}是否有变量?

2 个答案:

答案 0 :(得分:2)

好的,所以我找到了使用getResourceAsStream()方法的解决方案。

String classpathName = "/bootstrap/" + "css" + "/" + file;
InputStream inputStream = SetupReportDirectory.class.getResourceAsStream(classpathName);
String path = "target/myLibrary/bootstrap";
FileOutputStream outputStream = new FileOutputStream(path);
IOUtils.copy(inputStream, outputStream);

答案 1 :(得分:0)

在您的库中,只需检查target目录(和/或您感兴趣的任何子目录)是否存在。如果它不只是使用File.mkdirs(...)并创建它。这就是maven-surefire-plugin正在做的事情。