簡體   English   中英

在非Maven項目中如何具有等效的主資源?

[英]How to have the equivalent of main/resources in a non-Maven project?

我試圖在Github上基於該項目對我的項目進行建模。

public class DroolsPlannerPoCApp {
....
private static final String   SOLVER_CONFIG    = "/ServiceDeliverySolverConfig.xml";
....
private Solver createSolver() {
        XmlSolverConfigurer configurer = new XmlSolverConfigurer();
        configurer.configure( SOLVER_CONFIG );
        return configurer.buildSolver();
    }

SOLVER_CONFIG中提到的文件位於resources目錄中( 請參閱此處 )。


我試圖做同樣的事情

package in.co.technovia.sudoku;

import java.util.ArrayList;
....
public class App{
    private static final String SOLVER_CONFIG = "/solver.xml";
    public static void main(String[] args){
    SudokuGenerator sg = new SudokuGenerator();
    ....
    }

    private static Solver createSolver(){

    XmlSolverConfigurer configurer = new XmlSolverConfigurer();
        configurer.configure(SOLVER_CONFIG);
        return configurer.buildSolver();
    }
}

失敗了。

jesvin@Jesvin-Technovia:~/dev/drools/sudoku$ java in.co.technovia.sudoku.AppException in thread "main" java.lang.IllegalArgumentException: The solver configuration (/solver.xml) does not exist.
    at org.drools.planner.config.XmlSolverConfigurer.configure(XmlSolverConfigurer.java:79)
    at in.co.technovia.sudoku.App.createSolver(App.java:67)
    at in.co.technovia.sudoku.App.main(App.java:43)

我知道main/resourcesMaven builds有意義 但是我正在手動構建項目。

問題:如何在自己的項目中實現同一件事(通過資源)? 我必須在哪里放置文件,我必須在SOLVER_CONFIG中指定什么?


函數本身實現為:

public XmlSolverConfigurer configure(String resource) {
    return configure(getClass().getResourceAsStream(resource));
}

將資源放在類路徑上,例如,在源目錄中。

Maven所做的只是將src/main/resources包/目錄樹合並到目標類路徑中,並保持相同的包/文件夾布局。

如果手動構建,則需要將資源手動復制到類路徑中,即,將XML文件復制到生成的類目錄的根路徑中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM