我正在编写一个库,它将根据测试结果创建一个报告(想象一下像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}}是否有变量?
答案 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
正在做的事情。