4

我正在编写一个库,它将根据测试结果创建一个报告(想象一下像 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

4

2 回答 2

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);
于 2013-09-11T08:33:58.317 回答
0

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

于 2013-09-06T14:15:54.440 回答