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

Ответить
Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 14 мар 2014, 19:47

Гугл выдаёт фигню по этому поводу, а в репозиторий файл 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%
Последний раз редактировалось rezak90 17 мар 2014, 01:00, всего редактировалось 2 раза.
R.id.team
Политика на форуме запрещена

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

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

Сообщение altwin » 16 мар 2014, 20:45

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

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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 16 мар 2014, 21:20

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

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

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

Сообщение altwin » 16 мар 2014, 22:48

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 -это менее хардкор чем привязываться к не "родной" переменной.
Изображение

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

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

Сообщение altwin » 16 мар 2014, 22:58

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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 16 мар 2014, 23:01

дело в том что если я сделаю update project то он затрет build.xml в котором есть кастомные таски, но и устанавливать ещё дополнительно cygwin как то не очень красиво выглядит... буду копать дальше
P.S. Ставлю TeamCity, другие не использовал, там просто ссылку ему кинуть на build.xml и он соберет проект.
R.id.team
Политика на форуме запрещена

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

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

Сообщение altwin » 16 мар 2014, 23:05

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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 16 мар 2014, 23:21

а сборки на сервере не будет, грубо говоря на сервере только пути к репозиторию и к build.xml хранятся, сервер запускается ант и тот уже собирает, дальше сборка уже отправляется тестеру или заказчику или производится запуск тестов
R.id.team
Политика на форуме запрещена

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 17 мар 2014, 00:25

кстати PowerShell не хавает echo %ANT_HOME% , а вот обычная командная строка хавает... вот такие вот дела
R.id.team
Политика на форуме запрещена

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

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

Сообщение altwin » 17 мар 2014, 00:42

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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 17 мар 2014, 00:49

Не, это я попробовал в первую же очередь, не катит. Но блин ант все равно не подставляет путь:
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
Политика на форуме запрещена

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 17 мар 2014, 00:56

блин, написано в документации так как я и делаю, но не получается :(
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
Политика на форуме запрещена

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

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

Сообщение altwin » 17 мар 2014, 01:01

Ну значит просто пора спать :)
Изображение

Ответить