首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文件传送到jar

将文件传送到jar
EN

Stack Overflow用户
提问于 2020-05-31 11:16:45
回答 2查看 46关注 0票数 0

我有包含以下代码的jar文件

代码语言:javascript
复制
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插件在另一个应用程序中使用。

代码语言:javascript
复制
 <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项目和使用者项目中进行测试,但什么也没有。断言总是失败。

你知道我在这里做错什么了吗?

问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-31 15:44:26

您似乎在使用相对路径。删除第一个斜杠:

代码语言:javascript
复制
val file = Paths.get("target/classes/cassandra.yaml").toFile

或者,添加一个点:

代码语言:javascript
复制
val file = Paths.get("./target/classes/cassandra.yaml").toFile

或者提供完整的路径

代码语言:javascript
复制
val file = Paths.get("/full/path/target/classes/cassandra.yaml").toFile
票数 1
EN

Stack Overflow用户

发布于 2020-05-31 11:26:03

创建一个资源文件夹并在其中放置yaml文件,不要放置在目标文件夹路径中,因为目标文件夹在生成时总是会被刷新,这使得文件不可用。

因此,请创建单独的资源文件夹并保留yaml文件,然后尝试访问

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62115382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档