我有包含以下代码的jar文件
import java.io.File
import java.nio.file.Paths
import org.cassandraunit.utils.EmbeddedCassandraServerHelper
object CassandraMockBootable extends App {
println("Running embedded Cassandra.........")
val file = Paths.get("/target/classes/cassandra.yaml").toFile
assert(file.exists())
EmbeddedCassandraServerHelper.startEmbeddedCassandra(file, 50000)
}此jar由运行java进程的maven插件在另一个应用程序中使用。
<plugin>
<groupId>com.bazaarvoice.maven.plugins</groupId>
<artifactId>process-exec-maven-plugin</artifactId>
<version>0.8</version>
<executions>
<execution>
<id>Embedded-Cassandra</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
<configuration>
<name>Embedded-Cassandra</name>
<skip>${skipStartService}</skip>
<arguments>
<argument>java</argument>
<argument>-XX:+HeapDumpOnOutOfMemoryError</argument>
<argument>-Xss1M</argument>
<argument>-XX:+UseParallelGC</argument>
<argument>-cp</argument>
<argument>../../mock-service/target/lib/*</argument>
<argument>mocks.bootables.CassandraMockBootable</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>我不知道怎么做,但是我一直无法将cassandra.yaml传递给那个过程,断言从来都不起作用。
我试图将该文件放入src的资源中,并在生成的jar项目和使用者项目中进行测试,但什么也没有。断言总是失败。
你知道我在这里做错什么了吗?
问候
发布于 2020-05-31 15:44:26
您似乎在使用相对路径。删除第一个斜杠:
val file = Paths.get("target/classes/cassandra.yaml").toFile或者,添加一个点:
val file = Paths.get("./target/classes/cassandra.yaml").toFile或者提供完整的路径
val file = Paths.get("/full/path/target/classes/cassandra.yaml").toFile发布于 2020-05-31 11:26:03
创建一个资源文件夹并在其中放置yaml文件,不要放置在目标文件夹路径中,因为目标文件夹在生成时总是会被刷新,这使得文件不可用。
因此,请创建单独的资源文件夹并保留yaml文件,然后尝试访问
https://stackoverflow.com/questions/62115382
复制相似问题