我正在尝试在 Intellij IDEA 中设置 ActiveJDBC 检测,但尽管我执行了指令中的所有步骤,但我无法让它工作。
在我pom.xml
我启用了插件:
<build>
<plugins>
<plugin>
<groupId>org.javalite</groupId>
<artifactId>activejdbc-instrumentation</artifactId>
<version>1.4.9</version>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>instrument</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后我创建了两个与我的数据库中的表相对应的试用模型:(Client
到表clients
)和SiteUrl
(到表site_urls
)。
我还在 JUnit 的默认配置中启用了作为 Maven 目标的工具。实际上,它似乎运行良好:
**************************** START INSTRUMENTATION ****************************
Directory: /home/k-/Idea Projects/project/project/target/classes
**************************** END INSTRUMENTATION ****************************
**************************** START INSTRUMENTATION ****************************
Directory: /home/k-/Idea Projects/project/project/target/test-classes
Found model: package.persistance.Client
Found model: package.persistance.SiteUrl
Instrumented class: package.persistance.Client in directory: /home/k-/Idea%20Projects/project/project/target/classes/
Instrumented class: package.persistance.SiteUrl in directory: /home/k-/Idea%20Projects/project/project/target/test-classes/
**************************** END INSTRUMENTATION ****************************
但是当我尝试执行以下代码时,出现错误:
public class FirstTests
{
@Test
public void saveTest() {
Base.open("com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1/test_db", "root", "");
Assert.assertTrue(Base.hasConnection());
Client c = new Client();
c.set("name", "client 1");
c.saveIt();
}
}
错误是:
org.javalite.activejdbc.DBException: failed to determine Model class name, are you sure models have been instrumented?
我无法弄清楚可能出了什么问题,我该如何解决?
编辑 尝试从命令行构建项目。我不确定我是否做得正确,这是我使用的命令:
mvn clean compile org.javalite:activejdbc-instrumentation:1.4.9:instrument assembly:single
但是我仍然遇到同样的错误,询问模型是否已经过检测。但是仪表输出似乎还可以。