在liquibase中运行Java代码变更集时获取liquibase.exception.CustomChangeException

在liquibase中运行Java代码变更集时获取liquibase.exception.CustomChangeException,java,liquibase,Java,Liquibase,我正在liquibase中运行Java代码变更集。但我面临着这个问题,我得到了ClassNotFoundException。我做了一些搜索,但没有找到任何有用的东西。所有这些研究都是有用的。我正在使用liquibase-core-2.0.1 下面是我的变更集 <changeSet id="111" author="myname" > <customChange class="com.example.CreateTableTask"> &l

我正在liquibase中运行Java代码变更集。但我面临着这个问题,我得到了ClassNotFoundException。我做了一些搜索,但没有找到任何有用的东西。所有这些研究都是有用的。我正在使用liquibase-core-2.0.1


下面是我的变更集

<changeSet id="111" author="myname" >
        <customChange class="com.example.CreateTableTask">
        </customChange>
</changeSet>
下面是我得到的例外

java.lang.ClassNotFoundException:com.example.CreateTableTask liquibase.exception.ChangeLogParseException:迁移文件无效: java.lang.ClassNotFoundException:com.example.CreateTableTask 位于liquibase.parser.core.xml.XMLChangeLogSAXParser.parse(XMLChangeLogSAXParser.java:132) 更新(liquibase.java:107) 位于liquibase.integration.commandline.Main.doMigration(Main.java:825) 在liquibase.integration.commandline.Main.Main(Main.java:134)处,由以下原因引起:org.xml.sax.SAXException:java.lang.ClassNotFoundException: com.example.CreateTableTask liquibase.exception.CustomChangeException: java.lang.ClassNotFoundException:com.example.CreateTableTask 位于liquibase.parser.core.xml.XMLChangeLogSAXHandler.startElement(XMLChangeLogSAXHandler.java:478) 位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509) 位于com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:749) 在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:379) 位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786) 位于com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) 在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next上(XMLNSDocumentScannerImpl.java:117) 位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) 位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) 位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) 位于com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) 位于com.sun.org.apache.xerces.internal.jaxp.saxpasserimpl$jaxpsaxpasser.parse(saxpasserimpl.java:648) 位于liquibase.parser.core.xml.XMLChangeLogSAXParser.parse(XMLChangeLogSAXParser.java:98)


您使用什么命令启动Liquibase,包含自定义代码的jar文件在哪里


它的工作方式是,Liquibase将扫描所提到的类的类路径。您可以给liquibase.bat(或liquibase.sh)一个参数来指定一个类路径,或者如果我没有记错的话,默认情况下liquibase将在其lib目录中查找

启动Liquibase时使用了什么命令,包含自定义代码的jar文件在哪里


它的工作方式是,Liquibase将扫描所提到的类的类路径。您可以给liquibase.bat(或liquibase.sh)一个参数来指定一个类路径,或者如果我没有记错的话,默认情况下liquibase将在其lib目录中查找

您使用什么命令启动Liquibase,包含自定义代码的jar文件在哪里?它的工作方式是,Liquibase将扫描所提到的类的类路径。您可以给liquibase.bat(或liquibase.sh)一个参数来指定一个类路径,或者如果我没有记错的话,默认情况下liquibase将在其lib目录中查找。这是一个非常古老的Liquibase版本,所以如果你可以升级,你可能应该升级。谢谢@SteveDonie。。更新是我用于liquibase的命令。。缺少的是指定类路径的参数。。现在问题解决了。。你能把注释作为我会接受的答案吗..你用什么命令启动Liquibase,包含你自定义代码的jar文件在哪里?它的工作方式是,Liquibase将扫描所提到的类的类路径。您可以给liquibase.bat(或liquibase.sh)一个参数来指定一个类路径,或者如果我没有记错的话,默认情况下liquibase将在其lib目录中查找。这是一个非常古老的Liquibase版本,所以如果你可以升级,你可能应该升级。谢谢@SteveDonie。。更新是我用于liquibase的命令。。缺少的是指定类路径的参数。。现在问题解决了。。你能把这个评论作为我会接受的答案吗。。
public class CreateTableTask implements CustomTaskChange
{
    private static Logger log = Logger.getLogger(CreateTableTask.class.getName());
    @Override
    public void execute(Database database) throws CustomChangeException
    {
        System.out.print("testsomestring");
        try
        {
            JdbcConnection databaseConnection = (JdbcConnection) database.getConnection();
            log.info("testsomestring");
        }
        catch (Exception e)
        {
            throw new CustomChangeException(e);
        }
    }

    @Override
    public String getConfirmationMessage()
    {
        return null;
    }

    @Override
    public void setUp() throws SetupException
    {

    }

    @Override
    public void setFileOpener(ResourceAccessor resourceAccessor)
    {

    }

    @Override
    public ValidationErrors validate(Database database)
    {
        return null;
    }
}