Nano Hash - криптовалюты, майнинг, программирование

Как я могу перенести существующий проект Android на базе IDEA Scala в SBT?

У меня есть приложение для Android, написанное на Scala, которое я создавал с помощью IntelliJ IDEA 13, используя плагин Scala напрямую, без какой-либо другой системы сборки. Теперь проект несколько вырос, со вторым (библиотекой) модулем и некоторыми внешними библиотеками, я хотел бы перейти на правильную систему сборки с другими конфигурациями и управлением зависимостями.

Я нашел много информации об импорте существующих проектов SBT в IDEA и запуске нового проекта Android SBT в IDEA из шаблона, но я не нашел никакой информации о настройке SBT для существующего проекта IDEA. Вся документация, которую я нашел, предполагает, что вы начинаете с нуля. Какому процессу я должен следовать, чтобы достичь этого?


  • Мне еще предстоит немного узнать о стеке разработки Scala/sbt/Android, но я слышал довольно много успешных историй о android-sdk-plugin, который вы можете попробовать. 16.06.2014
  • Если вы еще не знакомы с этим списком рассылки: groups.google. ком/форум/#!форум/скала-на-андроиде 16.06.2014
  • Не могли бы вы поделиться структурой проекта, чтобы было проще начать? 17.06.2014
  • @JacekLaskowski Я не делал ничего особенного в IntelliJ. Я просто создал проект Android обычным способом, затем добавил фасет Scala 2.10 в основной модуль и настроил библиотеку компилятора с JAR-файлами из /usr/local/share/scala/lib. 17.06.2014
  • Я воспроизведу ваш проект, но прежде чем тратить на него много времени, позвольте мне спросить вас о публикации вашего проекта на GitHub. Возможный? Я ценю. 17.06.2014

Ответы:


1

Предполагая, что у вас есть традиционный (не Gradle) макет проекта для Android:

  1. Резервный.
  2. Создайте project/plugins.sbt со следующим содержимым:

    addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.3.0-SNAPSHOT")

  3. Создайте build.sbt. Вот пример с использованием support-v4 и gms. Отредактируйте соответственно.

  4. Удалить интеллектуальные артефакты (*.idea, *.iml и т. д.)
  5. Откройте intellij и импортируйте проект на основе sbt. (Необязательно: включите автоматический импорт)
  6. Откройте свойства проекта. Установите SDK на правильный Android SDK.
  7. В своем модуле добавьте Android Facet. Убедитесь, что каталоги (src, gen и т. д.) указывают правильные пути.
  8. Подключите ваше устройство
  9. sbt run

Предостережения:

  • Если вы включите автоматический импорт, intellij снимает пометку с папки «gen» как с созданным каталогом источников. Если это произойдет, вам придется снова пометить этот каталог как каталог для сгенерированных исходников.

-- Обновлять:

Если у вас несколько проектов, создайте файл build.sbt (или project/Build.scala) в каталоге проекта верхнего уровня.

Примеры из android-sdk-plugin:

10.07.2014
  • Есть одна вещь, которая пока не совсем ясна. Мой проект находится в каталоге myproject, с основным модулем в каталогах myproject/myproject и src/, res/ внутри него. Где я должен создавать эти файлы SBT? В каталоге проекта, каталоге модуля или где-то еще? А как же библиотечный модуль? 10.07.2014
  • Для настройки нескольких проектов вам нужно создать один файл build.sbt или (project/Build.scala) в каталоге верхнего уровня. 11.07.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..