Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / liquibase через AntTask: относительный путь к changelogs.xml не находит / 1 сообщений из 1, страница 1 из 1
05.05.2013, 23:51:55
    #38248376
kamenjahr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
liquibase через AntTask: относительный путь к changelogs.xml не находит
Дарова народ,
разбираясь с тузлой по миграции ДБ l iquibase 2.0.5 , споткнулся ;-) о следующую ситуацию, запуская актуализацию ДБ как в анте с консоли так и в еклипсе.

Ситуаиция - в liquibase.properties - для ант-бильда (файлик с названием NewFile1.xml) прописываю следующее
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
changeLogFile=com/db/master.changelog.xml
driver=org.h2.Driver
url=jdbc:h2:tcp://localhost/testhiberliq
username=sa
password=

#for diff between two databases
baseUrl=jdbc:h2:tcp://localhost/testhiberliq
baseUsername=sa
basePassword=

dropFirst=false
tag=version 1.4
outputFile=outputFile.xml
outputDiffFile=outputFile.txt


Важно, что путь к мастер-хмлю, где прописаны хмли изменений, changeLogFile=com/db/master.changelog.xml - в виде относительного пути.
Сам работающий бильд для анта прописан так
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?xml version="1.0" encoding="UTF-8"?>

<project name="liquibase-sample">

    <property file="liquibase.properties" />

    <path id="lib.path">
        <fileset dir="lib">
            <include name="**/*.jar" />
        </fileset>
    <!--    <fileset dir="bin">
            <include name="**/*.xml" />
        </fileset> -->
    </path>

    <taskdef resource="liquibasetasks.properties">
        <classpath refid="lib.path" />
    </taskdef>

    <target name="update-database">
        <!--       <taskdef name="updateDatabase" 
        classpathref="lib.path" />-->
        <updateDatabase changeLogFile="${basedir}/src/${changeLogFile}" driver="${driver}" url="${url}" username="${username}" password="${password}" dropFirst="${dropfirst}" classpathref="lib.path" />
    </target>

</project>


В данной версии бильда я задал путь changeLogFile к
в anttask updateDatabase в переменной changeLogFile , испоьзуя предопределенную переменную basedir и что самое неприглядное - src директорию. "${basedir}/src /${changeLogFile}" .

В примерах в тырнете такого изврата нет, но если я просто определяю как changeLogFile="${changeLogFile}" , то ликвибайз ругаеецоо, говоря, что не найдет файл com/db/master.changelog.xml .

Не пойму, в чем трабл. Пытался определить classpath для ант-задачи, используя bin-директорию, куда хмл-ки копируйюццо еклипсом (собственно говоря, это класспас для ява-классов предже всего и проч. ресурсов. Но тогда вообще атомный страх наступает в виде експепшнов

Структура директорий следующая
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
I:.
│   .classpath
│   .project
│   liquibase.properties
│   NewFile.xml
│   NewFile1.xml
│   outputFile.txt
│   outputFile.xml
│
├───.settings
│       org.eclipse.jdt.core.prefs
│
├───bin
│   │   hibernate.cfg.xml
│   │
│   ├───com
│   │   └───db
│   │       │   master.changelog.xml
│   │       │
│   │       └───changelog
│   │               included.changelog.xml
│   │               included2.changelog.xml
│   │               included3.changelog.xml
│   │
│   └───testproject
│       │   Main.class
│       │
│       └───database
│           │   DatabaseDAO.class
│           │
│           └───pojo
│                   Users.class
│
├───lib
│       h2-1.3.168.jar
│       liquibase.jar
│
└───src
    │   hibernate.cfg.xml
    │
    ├───com
    │   └───db
    │       │   master.changelog.xml
    │       │
    │       └───changelog
    │               included.changelog.xml
    │               included2.changelog.xml
    │               included3.changelog.xml
    │
    └───testproject
        │   Main.java
        │
        └───database
            │   DatabaseDAO.java
            │
            └───pojo
                    Users.java
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / liquibase через AntTask: относительный путь к changelogs.xml не находит / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]