Groovy -无法从自定义jar加载类文件

yebdmbv4  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(203)

这是一个非常简单的测试,我遗漏了一些东西,这让我抓狂。
我尝试从groovy脚本调用一个包含单个groovy类的自定义jar。
“产品”类:

package test.products

public class Product{

    String name = "Soap";
}

使用Product类的groovy脚本:

try{
    test.products.Product product = new test.products.Product();
    println(product.name);
}catch(Exception e){
    println(e);
}

groovy产品文件位于test\products文件夹中:

src
|- test.groovy
|_ test
  |_products
    |_ Product.groovy

我从src目录将Product类型编译为类:Soap
运行我的测试,结果是预期的Soap,因为类文件位于test\product子文件夹中

\src> groovy test.groovy
Soap

创建一个包含Product.class的jar:

\src> jar -cvf0 test-product-lib-0.2.jar test\products\Product.class
added manifest
adding: test/products/Product.class(in = 2713) (out= 2713)(stored 0%)

jar现在与测试脚本位于同一个文件夹中,并且我已经删除了test文件夹,以便scipt能够读取jar:

src
|- test.groovy
|_ test-product-lib-0.2.jar

尝试再次运行该脚本,然后出现以下错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
C:\wip\groovy\products\src\test.groovy: 3: unable to resolve class test.products.Product
 @ line 3, column 24.
        test.products.Product product = new test.products.Product();

我错过了什么?

uwopmtnx

uwopmtnx1#

我发现我需要将jar文件放在lib\ext文件夹中,以便groovy加载它。
一旦我把jar放在ext文件夹中,一切都按预期运行。

相关问题