Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Maven, скопировать из git репозитория файлы и положить из в resources / 20 сообщений из 20, страница 1 из 1
10.12.2019, 18:06
    #39900960
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Собственно в названии темы весь вопрос и есть :)
Не гуглится никак тема.
Есть какие-то упоминания SCM плагина, но не могу понять оно или нет и если оно, то как его правильно подключить, чтобы задача по перекладыванию файлов из стороннего открытого репозитория в пакет ресурсов jar'ника была выполнена?
Спасибо :)
...
Рейтинг: 0 / 0
10.12.2019, 18:21
    #39900963
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Ты ничего не путаешь?

Копирования в git нету. Есть git clone который создает локальную копию. Дальше делай с ней что хочешь.
Возможно ты перепутал инструменты.
...
Рейтинг: 0 / 0
10.12.2019, 18:24
    #39900964
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
mayton
Ты ничего не путаешь?
Копирования в git нету. Есть git clone который создает локальную копию. Дальше делай с ней что хочешь.
Возможно ты перепутал инструменты.

тааак, то есть в принципе можно клонировать репозиторий в папку рядом с проектом, и затем забрать оттуда файлы и положить в пакет ресурсов собранного проекта? Если не сложно, скиньте поисковый запрос правильный :)
...
Рейтинг: 0 / 0
10.12.2019, 18:36
    #39900971
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Nixic,
Тебе надо публичный репо скопировать в локальный репо. Допустим 700 файлов.
А в проект пойдут в 10 раз меньше.
Причина какая?
...
Рейтинг: 0 / 0
10.12.2019, 18:46
    #39900976
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Так, всё, сделал :)
Код: 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.
 <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.4.0</version>
                <executions>
                    <execution>
                        <phase>initialize</phase>
                        <id>clone_and_put_to_resources</id>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <executable>git</executable>
                    <arguments>
                        <argument>clone</argument>
                        <argument>-b</argument>
                        <argument>my_branch_name</argument>
                        <argument>http://scm.some.ru:7999/scm/back/config-repo</argument>
                        <argument>${project.build.outputDirectory}/config/</argument>
                    </arguments>
                </configuration>
            </plugin>



Причина такая, там в репозитории публичном лежат конфиги для сервисов клиентов, всё бы ничего, пусть себе сервисы-клиенты забирают оттуда свои конфиги, но заказчику мы отдаем jar'ник и только, ну может можно рядом папочку какую положить с параметрами и всё. Ставить git и держать у себя на серверах репозитории они не будут.

Поэтому собираем под конкретного заказчика проект с его конфигурационными файлами для сервисов-клиентов.
И при запуске конфиг-сервиса передаем параметр, т.е. профиль, который "переключит" путь к конфигам на путь к ресурсам проекта, а не к публичному репозиторию.

Спасибо, вроде дальше понятно. Очень помог(ли)! :)
...
Рейтинг: 0 / 0
10.12.2019, 18:58
    #39900977
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Клон делается 1 раз.

После этого можно делать git pull и будут подтягиваться только изменения. Это быстрее.
Кроме того git это система тегов и бранчей. Ты должен понимать что в дефолтном клонировании
ты смотришь на ветку "master" хотя это и не всегда может быть целесообразно.
...
Рейтинг: 0 / 0
10.12.2019, 20:44
    #39900992
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
mayton
Ты должен понимать что в дефолтном клонировании
ты смотришь на ветку "master" хотя это и не всегда может быть целесообразно.

Да, поэтому я и указал ветку:
Код: xml
1.
2.
         <argument>-b</argument>
         <argument>my_branch_name</argument>


Имя ветки можно параметризировать и забирать файлы из нужной.

Почему файлы лежат в репозитории - потому что Spring cloud config-service умеет в настройках работать с git.
Да, можно было бы хранить файлы в директориях рядом с проектом, в репозитории самого проекта, но тогда надо было бы плодить их не известно сколько штук, да и управлять неудобно.
...
Рейтинг: 0 / 0
10.12.2019, 21:57
    #39901003
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Nixic, посмотри еще подмодули. (Это в переводе Чакона и Штрауба книги.)
В командах это выглядит как-то так:

Код: java
1.
git submodule add https://github.com/......



Разумеется это работает если родтельский проект тоже стоит под git.
Я лично это не использовал. Поэтому деталей не знаю.
...
Рейтинг: 0 / 0
11.12.2019, 08:51
    #39901045
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Да, понял, спасибо, я подмодули рассматривал как-то по другой задаче, так и не задействовал.
В итоге сделал вот так:
В pom.xml имеем 2 профиля:
1-й использует плагин для клонирования из репозитория config-repo файлов в папку сборки target/classes/config/
2-й этого не делает.

pom.xml
Код: powershell
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.
<profiles>
        <profile>
            <!-- Профиль используется для подтягивания(по факту клонирование репозитория) файлов конфигурации из репозитория config-repo,
            при этом  для конкретного заказчика, нужно собрать настроенные под него файлы конфигурации в определенной ветке, например в feature/MY_BRANCH.
            Необходимо указать имя ветки заказчика в значении properties <env.GIT_BRANCH> ниже
            Для работы напрямую с файлами репозитория и веткой,
            нужно(но не обязательно, т.к. файлы в exploded сборке в classes/config/ просто будут игнорироваться) пересобрать проект с мавен-профилем git
            и/или запустить проект с параметрами spring.profile.active=dev,  GIT_URI и GIT_BRANCH, подробнее см. комментарии в application.yml -->
            <id>dev</id>
            <properties>
                <activatedProperties>dev</activatedProperties>
                <env.GIT_BRANCH>feature/dev</env.GIT_BRANCH>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.4.0</version>
                        <executions>
                            <execution>
                                <phase>initialize</phase>
                                <id>clone_and_put_to_resources</id>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <executable>git</executable>
                            <arguments>
                                <argument>clone</argument>
                                <argument>-b</argument>
                                <argument>${env.GIT_BRANCH}</argument>
                                <argument>http://scm.some.ru:7999/scm/back/config-repo</argument>
                                <argument>${project.build.outputDirectory}/config/</argument>
                            </arguments>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>git</id>
            <properties>
                <activatedProperties>git</activatedProperties>
            </properties>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
        </profile>
    </profiles>



Запускать проект будем либо без указания профиля спринга, тогда конфиг-сервис будет отдавать клиентам файлы конфигураций из папки target/classes/config/, если укажем профиль "git", ну это я сам так его назвал, для сходства с профилем мавена, то будут использоваться файлы напрямую из репозитория из указанной ветки.
При этом настройки для spring cloud ,получаются такими:


application.yml
Код: powershell
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.
spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          # ссылка на репозиторий с конфиг-файлами для сервисов-клиентов
          uri: ${GIT_URI:http://scm.some.ru:7999/scm/back/config-repo}
          # ветка, откуда будут собираться конфиг-файлы из репозитория
          default-label: ${GIT_BRANCH:master}
          repos:
            local:
              # config-service при запуске без параметра spring.profile.active=dev будет брать по-умолчанию параметры из папки classes/config/
              # иначе будет отдавать параметры из репозитория указанного выше
              pat tern: native*
              uri: file:///${project.build.outputDirectory}/config/
  profiles:
    # профиль спринг по-умолчанию будет активным, то есть будет отдавать сервисам-клиентам файлы конфигурации из папки classes/config/
    active: native
    # если при запуске есть параметр spring.profile.active=dev, то данные будут тянуться из репозитория указанного выше.
    include: dev
    ###
    # пример строки запуска с переменными, на всякий случай :) :
    # GIT_URI=http://scm.some.ru:7999/scm/back/config-repo;GIT_BRANCH=feature/my_branch;spring.profiles.active=dev
    # файлы будут подтянуты из указанного репозитория и ветки, будут задействованы только если профиль указан как dev.
    # если не указать профиль dev, то сервисам клиентам файлы будут отдаваться из папки classes/config/,  то есть будет использован профиль по-умолчанию - native
    # и параметры  GIT_URI и GIT_BRANCH не будут задействованы.
    ###



Очень похоже на велосипед, ну или слишком замороченную сборку, но пока по другому я не придумал как решить проблему использования конфиг-сервиса так, чтобы можно было разные места ему указывать, чтобы он находил файлы конфигураций клиентов и отдавал им нужные при обращении.
...
Рейтинг: 0 / 0
11.12.2019, 09:16
    #39901052
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
хех, написал, что профиль назвал "git", а сам в коде спринг конфигах указал "dev"))
ну не суть, ладно :)
...
Рейтинг: 0 / 0
11.12.2019, 09:20
    #39901054
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Nixic
пока по другому я не придумал
клиентам еще делают бвтники или sh файлы скрипты для установки продуктов.
...
Рейтинг: 0 / 0
11.12.2019, 10:28
    #39901076
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Nixic
Spring cloud config-service умеет в настройках работать с git.

Nixic
Ставить git и держать у себя на серверах репозитории они не будут.

Если у вас облака проект, то у заказчика не так?
Git не нужен заказчику как облако в продакшене или РАСПРЕДЕЛЕННЫЕ ПРИЛОЖЕНИЯ?
...
Рейтинг: 0 / 0
11.12.2019, 11:12
    #39901096
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Всё оказалось куда сложнее)) заказчик поставляет продук своим заказчикам и все мои наработки пошли лесом, оставляем конфиг-файлы в папке ресурсов проекта и отдаем заказчику сервисы с инструкцией куда какие параметры класть для конкретных стендов.
Да и фиг с ним, хоть поигрался с мавеном и профилями)) Но на самом деле печальненько как-то...
...
Рейтинг: 0 / 0
11.12.2019, 11:51
    #39901125
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Nixic,
Вот именно что поигрался.
Сложно выходило у тебя.
Если нет облаков, то надо проще, вплоть до общего конфига на продукт.
Если Spring cloud config-service то под конфиги целы сервер у заказчика.
Имхо
...
Рейтинг: 0 / 0
11.12.2019, 14:32
    #39901261
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Nixic
Всё оказалось куда сложнее)) заказчик поставляет продук своим заказчикам и все мои наработки пошли лесом, оставляем конфиг-файлы в папке ресурсов проекта и отдаем заказчику сервисы с инструкцией куда какие параметры класть для конкретных стендов.
Да и фиг с ним, хоть поигрался с мавеном и профилями)) Но на самом деле печальненько как-то...


Вообще-то желательно большую часть конфигурационных параметров забирать через переменные окружения.
Ну типа сейчас "стильномодномолодежно" все в докерах делать, а там параметры передаются через переменные окружения (см. например docker-compose)
...
Рейтинг: 0 / 0
11.12.2019, 15:00
    #39901288
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
mad_nazgul

Вообще-то желательно большую часть конфигурационных параметров забирать через переменные окружения.
Ну типа сейчас "стильномодномолодежно" все в докерах делать, а там параметры передаются через переменные окружения (см. например docker-compose)
Ага, запускаешь ps, а там все пароли плейнтекстом :)
...
Рейтинг: 0 / 0
11.12.2019, 15:04
    #39901291
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Андрей Панфилов
mad_nazgul

Вообще-то желательно большую часть конфигурационных параметров забирать через переменные окружения.
Ну типа сейчас "стильномодномолодежно" все в докерах делать, а там параметры передаются через переменные окружения (см. например docker-compose)
Ага, запускаешь ps, а там все пароли плейнтекстом :)


Jasypt?!
:-)
...
Рейтинг: 0 / 0
11.12.2019, 15:44
    #39901321
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
mad_nazgul

Jasypt?!
:-)
Да проблема-то совсем не в этом (есть или нет разного рода костыли), а в тенденции: ну вот тот же докер, при всей его ущербности, позволяет "довольно безопасно" бутстрапить приложения - там по спецификации есть /bootstrap.sh - можно просто обмазаться кодом на sh или другом любимом интерпретаторе, однако в реальности народ читает какие-то мурзилки в духе: вот в контейнер можно передавать переменные окружения или еще какие аргументы - это офигеть как "удобно", в итоге все изначально делает полную херню.

Я вот совсем недавно заморачивался по поводу того, чтобы один проект выложить на github и чтобы его артефакты попадали в maven central, вот оно вручную выглядит все довольно просто, однако когда пытаешься это дело автоматизировать (у гитхаба для OSS есть халявная интеграция с Travis CI), то получается какой-то колхоз в духе: вот в .travis.yml положите свои пароли (можно зашифровать) и оно будет работать, да я даже зашифрованные пароли в открытый доступ класть не хочу - я хочу себе отдельную "папочку" именно в Travis CI куда я смогу складывать свои пожитки и не светить всему миру информацию о том как я собираю приложение и его публикую.

В целом же получается что весь мир ебанулся со всеми этими облаками и прочей херней, лет 5 назад был хайп про IoT, там даже MITRE объявления писала в духе: ребята, мы дефекты безопасности по IoT обрабатываем крайне медленно, потому что там полная жопа, а результат такой, что вот у меня в доме никакого IoT нет (ну вот это реально хрень получается: лампочками можно управлять по вафле (ребенок просил купить, ему было интересно), но при нажатии "включателя" они загораются секунды через две, т.е. результат такой что освещенность руками регулировать у меня потребности нет, а вот то что свет включается через несколько секунд - это реально напрягает, ну и итог предсказуемый)

мне так кажется, что в скором времени докер (как компания) умрет, т.е. все эти контейнеры подберет под себя красная шапка (они восьмерку уже выпустили с podman, который совместим с докером + имеет собственные фишки), а несколько позже ребята все сделают по уму, а не так как сейчас.
...
Рейтинг: 0 / 0
12.12.2019, 06:05
    #39901603
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
Андрей Панфилов

В целом же получается что весь мир ебанулся со всеми этими облаками и прочей херней, лет 5 назад был хайп про IoT, там даже MITRE объявления писала в духе: ребята, мы дефекты безопасности по IoT обрабатываем крайне медленно, потому что там полная жопа, а результат такой, что вот у меня в доме никакого IoT нет (ну вот это реально хрень получается: лампочками можно управлять по вафле (ребенок просил купить, ему было интересно), но при нажатии "включателя" они загораются секунды через две, т.е. результат такой что освещенность руками регулировать у меня потребности нет, а вот то что свет включается через несколько секунд - это реально напрягает, ну и итог предсказуемый)


Это бизнес - ничего личного.
Основная задача всей это движухи "продавать воздух".
Т.е. подсадить пользователей на "подписку".

Крайним выражением этого движа AWS-лямбда. Севрерлесс так называемый.

Точно не помню то ли в 12, то ли 14 году в США проталкивали закон, чтобы все СМБ в обязательном порядке использовали облака, а не свои мощности для ИТ задач.

Андрей Панфилов

мне так кажется, что в скором времени докер (как компания) умрет, т.е. все эти контейнеры подберет под себя красная шапка (они восьмерку уже выпустили с podman, который совместим с докером + имеет собственные фишки), а несколько позже ребята все сделают по уму, а не так как сейчас.


Не думаю, что докер как решение умрет.
Скорее его потеснят решения типа AWS-Лямбда. Но это будет не прям щас.
...
Рейтинг: 0 / 0
12.12.2019, 12:38
    #39901795
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Maven, скопировать из git репозитория файлы и положить из в resources
mad_nazgul

Не думаю, что докер как решение умрет.
Скорее его потеснят решения типа AWS-Лямбда. Но это будет не прям щас.

Ничего Лямбда не вытеснит. Они в стеке стоят на разных уровнях. Или даже лежат в плоскости разных технологий.
Тот-же амазон продает как AWS-Lambda так и Amazon-ECS. Они существуют вместе.
Лямбда также имеет очень серъезные архитектурные лимиты (там и ограничение времени
жизни и память и состояние) которые вообще не дают возможности портировать
приложение as is на Lambda без потерь или без полной переработки.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Maven, скопировать из git репозитория файлы и положить из в resources / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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