Как сделать, чтобы последующие сборки продукта PDE не перестраивали зависимые плагины - PullRequest
1 голос
/ 12 августа 2011

Наш процесс сборки создает несколько продуктов из относительно небольшого набора плагинов.Чтобы запустить сборку, у нас есть Ant-файл, который просто перебирает названия продуктов, например:

    <for list="all,client1,client1_64,client2,client2_64,rob" param="feature">
        <sequential>
            <java jar="${eclipse.launcher}" fork="true" dir="${basedir}" failonerror="true">
                <arg value="-application" />
                <arg value="org.eclipse.ant.core.antRunner" />
                <arg value="-buildfile" />
                <arg value="${eclipse.pde.build}/scripts/productBuild/productBuild.xml" />
                <arg value="-DbaseLocation=${eclipse.dir}" />
                <arg value="-Dproduct=${feature.dir}/@{feature}/my.product" />
                <arg value="-DbuildLabel=@{feature}-${build.timestamp}" />
                <arg value="-DbuildId=My_@{feature}_${release.name}-${build.timestamp}" />
                <arg value="-Dtimestamp=${release.name}-${build.timestamp}" />
                <arg value="-DbuildDirectory=${build.dir}" />
            </java>
        </sequential>
    </for>

Неудивительно, что продукт «all» включает в себя каждый из наших плагинов, остальныекакое-то подмножество.Моя проблема в том, что каждая итерация в этом цикле перекомпилирует и упаковывает каждый плагин, отбрасывая работу, которая была сделана ранее.Ничего страшного в нескольких продуктах, но теперь большая часть нашего времени на сборку тратится на перекомпиляцию и упаковку плагинов.

Может кто-нибудь подсказать мне, как лучше сделать процесс сборки плагинов для сборки только один раз, как все этипродукты упакованы?

Ответы [ 2 ]

1 голос
/ 02 мая 2012

Поскольку продукт «все» включает в себя все, я бы предложил разделить его отдельно от других продуктов.

После того, как продукт «все» создан, вы можете взять вывод этого и сделать его доступным.на другие сборки продукта.Если ваша «вся» сборка продукта производит метаданные p2, вы можете использовать repoBaseLocation и transformedRepoLocation , в противном случае вы можете использовать pluginPath.

Для последующих сборок продукта используйте новый пустой buildDirectory, чтобы они не видели источник для пакетов, а только двоичный вывод из «всего» продукта.Если все, что нужно этим продуктам, доступно в двоичном виде, то компиляция не потребуется, и эти сборки по сути становятся операциями упаковки.

0 голосов
/ 08 августа 2017

Я не смог заставить pluginPath работать, поэтому я скопировал уже созданные плагины в папку «dropins» цели Eclipse.PDE подхватывает их автоматически и не перестраивает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...