Универсальные пути [РЕШЕНО]
Универсальные пути [РЕШЕНО]
Гугл выдаёт фигню по этому поводу, а в репозиторий файл local.properties как правило не комитят. Внимание вопрос: как должна выглядить строчка с уникальными путями в local.properties?
Привожу пример как выглядит хардкордно:
sdk.dir=С:\Android\android-sdk
Соответственно у каждого свой путь к сдк. Добавляю в переменные среды своей ОС переменную ANDROID_SDK с значением С:\Android\android-sdk . Дальше уже содержимое local.properties выглядит так:
sdk.dir=ANDROID_SDK
но когда собираю антом проект, то вместо ANDROID_SDK путь не подставляется. Почему? Пробовал даже так sdk.dir=%ANDROID_SDK%
Привожу пример как выглядит хардкордно:
sdk.dir=С:\Android\android-sdk
Соответственно у каждого свой путь к сдк. Добавляю в переменные среды своей ОС переменную ANDROID_SDK с значением С:\Android\android-sdk . Дальше уже содержимое local.properties выглядит так:
sdk.dir=ANDROID_SDK
но когда собираю антом проект, то вместо ANDROID_SDK путь не подставляется. Почему? Пробовал даже так sdk.dir=%ANDROID_SDK%
Последний раз редактировалось rezak90 17 мар 2014, 01:00, всего редактировалось 2 раза.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Универсальные пути
я конечно не совсем понимаю, как это происходит у вас в windows... но вроде должна быть переменная окружения $ANDROID_SDK доступная глобально. Если в powershell проверить и сделать echo %ANDROID_SDK%?
P.S. вообще это не совсем нужно, просто когда проект добавляется в IDE выполняется android update --path (синтаксис не помню может ошибка есть...) потому путь в любом случае перезапишется таким же хардкором.
P.S. вообще это не совсем нужно, просто когда проект добавляется в IDE выполняется android update --path (синтаксис не помню может ошибка есть...) потому путь в любом случае перезапишется таким же хардкором.

Re: Универсальные пути
powershell ничего в таком случае не выдаетaltwin писал(а):я конечно не совсем понимаю, как это происходит у вас в windows... но вроде должна быть переменная окружения $ANDROID_SDK доступная глобально. Если в powershell проверить и сделать echo %ANDROID_SDK%?
для того что бы проект можно было собрать без присутствия какой либо IDE, а главное это нужно для билд сервера.altwin писал(а):P.S. вообще это не совсем нужно, просто когда проект добавляется в IDE выполняется android update --path (синтаксис не помню может ошибка есть...) потому путь в любом случае перезапишется таким же хардкором.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Универсальные пути
1. если не выдает, значит нет такой переменной в системе и использовать ее нельзя. Я не очень хорошо с win платформой знаком, нужно погуглить как создать, по аналогии с path и подобными переменными свою. Но опять же это windows и ничего, кроме головной боли в разработке он не даст. Может стоит попробывать cygwin установить и работать через терминал?rezak90 писал(а): 1.powershell ничего в таком случае не выдает
2.для того что бы проект можно было собрать без присутствия какой либо IDE, а главное это нужно для билд сервера.
2. я тоже часто не пользуюсь IDE b использую gradle для сборки просто набирая код в vim, но опять же это в OSX и fedora. А вообще судя по android --help, есть команда update project и подобные, потому все можно выполнять без IDE и использовать те же shell script или python, в общем что угодно для автоматизации. В любом случае в этом поможет cygwin в windows.
P.S. Т.е. ничего не мешает повторить действия IDE к примеру простым shell скриптом выполняя android update project. Вся суть в том, что файл local.properties(project наверно по умолчанию) -локален и генерируется автоматически, я думаю хардокрный путь к sdk -это менее хардкор чем привязываться к не "родной" переменной.

Re: Универсальные пути
а вообще если нужен build сервер, может пойти нормальным путем и не парится с windows
http://www.donnfelker.com/setting-up-an ... he-server/
т.е. использовать нормальный сервер
т.е. использовать нормальный сервер

Re: Универсальные пути
дело в том что если я сделаю update project то он затрет build.xml в котором есть кастомные таски, но и устанавливать ещё дополнительно cygwin как то не очень красиво выглядит... буду копать дальше
P.S. Ставлю TeamCity, другие не использовал, там просто ссылку ему кинуть на build.xml и он соберет проект.
P.S. Ставлю TeamCity, другие не использовал, там просто ссылку ему кинуть на build.xml и он соберет проект.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Универсальные пути
Ну на счет красиво я не уверен.. опять же windows чужеродна для Android по определению. Cygwin всетаки приближает систему к оригиналу, по крайней мере способ работы с ней. Есть на сколько я помню еще git клиент для windows(официальный) и там есть встроенный терминал(git bash), можно и его попробывать запускать и выполнять в нем все действия.
Так а зачем вообще своя сборка на сервере, gradle же вроде довольно таки стандарт, а суть сохраняется.
Т.е. вполне достаточно выполнить в терминале gradle build и все.
P.S. вот вспомнил ссылочку : http://habrahabr.ru/post/205308/
Так а зачем вообще своя сборка на сервере, gradle же вроде довольно таки стандарт, а суть сохраняется.
P.S. вот вспомнил ссылочку : http://habrahabr.ru/post/205308/

Re: Универсальные пути
а сборки на сервере не будет, грубо говоря на сервере только пути к репозиторию и к build.xml хранятся, сервер запускается ант и тот уже собирает, дальше сборка уже отправляется тестеру или заказчику или производится запуск тестов
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Универсальные пути
кстати PowerShell не хавает echo %ANT_HOME% , а вот обычная командная строка хавает... вот такие вот дела
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Универсальные пути
возможно windows стал ближе к правильной unix и что то вроде echo $ANT_HOME сработаетrezak90 писал(а):кстати PowerShell не хавает echo %ANT_HOME% , а вот обычная командная строка хавает... вот такие вот дела

Re: Универсальные пути
Не, это я попробовал в первую же очередь, не катит. Но блин ант все равно не подставляет путь:
C:\Users\viacheslav.titov>echo %ANDROID_HOME%
C:\Android\android-sdk\
C:\Users\viacheslav.titov>cd C:\Android\SmartSVN\weather\trunk\WeatherAggregator
C:\Android\SmartSVN\weather\trunk\WeatherAggregator>ant debug
Buildfile: C:\Android\SmartSVN\weather\trunk\WeatherAggregator\build.xml
BUILD FAILED
C:\Android\SmartSVN\weather\trunk\WeatherAggregator\build.xml:25: Cannot find C:
\Android\SmartSVN\weather\trunk\WeatherAggregator\%ANDROID_HOME%\tools\ant\build
.xml imported from C:\Android\SmartSVN\weather\trunk\WeatherAggregator\build.xml
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Универсальные пути
блин, написано в документации так как я и делаю, но не получается
-sdk.dir=%ANDROID_HOME%
Все, вот в чем была проблема то. Нужно было поставить черточку перед переменной:Defining properties on the command line can also be used to pass in the value of environment variables; just pass -DMYVAR=%MYVAR% (Windows) or -DMYVAR=$MYVAR (Unix) to Ant. You can then access these variables inside your build file as ${MYVAR}. You can also access environment variables using the property task's environment attribute.
-sdk.dir=%ANDROID_HOME%
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена