Страница 1 из 1

Универсальные пути [РЕШЕНО]

Добавлено: 14 мар 2014, 19:47
rezak90
Гугл выдаёт фигню по этому поводу, а в репозиторий файл 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%

Re: Универсальные пути

Добавлено: 16 мар 2014, 20:45
altwin
я конечно не совсем понимаю, как это происходит у вас в windows... но вроде должна быть переменная окружения $ANDROID_SDK доступная глобально. Если в powershell проверить и сделать echo %ANDROID_SDK%?

P.S. вообще это не совсем нужно, просто когда проект добавляется в IDE выполняется android update --path (синтаксис не помню может ошибка есть...) потому путь в любом случае перезапишется таким же хардкором.

Re: Универсальные пути

Добавлено: 16 мар 2014, 21:20
rezak90
altwin писал(а):я конечно не совсем понимаю, как это происходит у вас в windows... но вроде должна быть переменная окружения $ANDROID_SDK доступная глобально. Если в powershell проверить и сделать echo %ANDROID_SDK%?
powershell ничего в таком случае не выдает
altwin писал(а):P.S. вообще это не совсем нужно, просто когда проект добавляется в IDE выполняется android update --path (синтаксис не помню может ошибка есть...) потому путь в любом случае перезапишется таким же хардкором.
для того что бы проект можно было собрать без присутствия какой либо IDE, а главное это нужно для билд сервера.

Re: Универсальные пути

Добавлено: 16 мар 2014, 22:48
altwin
rezak90 писал(а): 1.powershell ничего в таком случае не выдает
2.для того что бы проект можно было собрать без присутствия какой либо IDE, а главное это нужно для билд сервера.
1. если не выдает, значит нет такой переменной в системе и использовать ее нельзя. Я не очень хорошо с win платформой знаком, нужно погуглить как создать, по аналогии с path и подобными переменными свою. Но опять же это windows и ничего, кроме головной боли в разработке он не даст. Может стоит попробывать cygwin установить и работать через терминал?
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: Универсальные пути

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

Re: Универсальные пути

Добавлено: 16 мар 2014, 23:01
rezak90
дело в том что если я сделаю update project то он затрет build.xml в котором есть кастомные таски, но и устанавливать ещё дополнительно cygwin как то не очень красиво выглядит... буду копать дальше
P.S. Ставлю TeamCity, другие не использовал, там просто ссылку ему кинуть на build.xml и он соберет проект.

Re: Универсальные пути

Добавлено: 16 мар 2014, 23:05
altwin
Ну на счет красиво я не уверен.. опять же windows чужеродна для Android по определению. Cygwin всетаки приближает систему к оригиналу, по крайней мере способ работы с ней. Есть на сколько я помню еще git клиент для windows(официальный) и там есть встроенный терминал(git bash), можно и его попробывать запускать и выполнять в нем все действия.
Так а зачем вообще своя сборка на сервере, gradle же вроде довольно таки стандарт, а суть сохраняется. :) Т.е. вполне достаточно выполнить в терминале gradle build и все.
P.S. вот вспомнил ссылочку : http://habrahabr.ru/post/205308/

Re: Универсальные пути

Добавлено: 16 мар 2014, 23:21
rezak90
а сборки на сервере не будет, грубо говоря на сервере только пути к репозиторию и к build.xml хранятся, сервер запускается ант и тот уже собирает, дальше сборка уже отправляется тестеру или заказчику или производится запуск тестов

Re: Универсальные пути

Добавлено: 17 мар 2014, 00:25
rezak90
кстати PowerShell не хавает echo %ANT_HOME% , а вот обычная командная строка хавает... вот такие вот дела

Re: Универсальные пути

Добавлено: 17 мар 2014, 00:42
altwin
rezak90 писал(а):кстати PowerShell не хавает echo %ANT_HOME% , а вот обычная командная строка хавает... вот такие вот дела
возможно windows стал ближе к правильной unix и что то вроде echo $ANT_HOME сработает :)

Re: Универсальные пути

Добавлено: 17 мар 2014, 00:49
rezak90
Не, это я попробовал в первую же очередь, не катит. Но блин ант все равно не подставляет путь:
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

Re: Универсальные пути

Добавлено: 17 мар 2014, 00:56
rezak90
блин, написано в документации так как я и делаю, но не получается :(
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%

Re: Универсальные пути

Добавлено: 17 мар 2014, 01:01
altwin
Ну значит просто пора спать :)